Skip to content

Commit 09b51b2

Browse files
committed
add soar packages count
1 parent 3def466 commit 09b51b2

File tree

6 files changed

+14
-2
lines changed

6 files changed

+14
-2
lines changed

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ if(NOT BINARY_LINK_TYPE IN_LIST BINARY_LINK_TYPE_OPTIONS)
102102
message(FATAL_ERROR "BINARY_LINK_TYPE must be one of ${BINARY_LINK_TYPE_OPTIONS}")
103103
endif()
104104

105-
set(PACKAGE_MANAGERS AM APK BREW CHOCO DPKG EMERGE EOPKG FLATPAK GUIX LINGLONG LPKG LPKGBUILD MACPORTS NIX OPKG PACMAN PACSTALL PALUDIS PISI PKG PKGTOOL RPM SCOOP SNAP SORCERY WINGET XBPS)
105+
set(PACKAGE_MANAGERS AM APK BREW CHOCO DPKG EMERGE EOPKG FLATPAK GUIX LINGLONG LPKG LPKGBUILD MACPORTS NIX OPKG PACMAN PACSTALL PALUDIS PISI PKG PKGTOOL RPM SCOOP SNAP SOAR SORCERY WINGET XBPS)
106106
foreach(package_manager ${PACKAGE_MANAGERS})
107107
if(package_manager STREQUAL "WINGET")
108108
option(PACKAGES_DISABLE_${package_manager} "Disable ${package_manager} package manager detection by default" ON)

doc/json_schema.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@
279279
"type": "string"
280280
},
281281
"packagesFormat": {
282-
"description": "Output format of the module `Packages`. See Wiki for formatting syntax\n 1. {all}: Number of all packages\n 2. {pacman}: Number of pacman packages\n 3. {pacman-branch}: Pacman branch on manjaro\n 4. {dpkg}: Number of dpkg packages\n 5. {rpm}: Number of rpm packages\n 6. {emerge}: Number of emerge packages\n 7. {eopkg}: Number of eopkg packages\n 8. {xbps}: Number of xbps packages\n 9. {nix-system}: Number of nix-system packages\n 10. {nix-user}: Number of nix-user packages\n 11. {nix-default}: Number of nix-default packages\n 12. {apk}: Number of apk packages\n 13. {pkg}: Number of pkg packages\n 14. {flatpak-system}: Number of flatpak-system app packages\n 15. {flatpak-user}: Number of flatpak-user app packages\n 16. {snap}: Number of snap packages\n 17. {brew}: Number of brew packages\n 18. {brew-cask}: Number of brew-cask packages\n 19. {macports}: Number of macports packages\n 20. {scoop}: Number of scoop packages\n 21. {choco}: Number of choco packages\n 22. {pkgtool}: Number of pkgtool packages\n 23. {paludis}: Number of paludis packages\n 24. {winget}: Number of winget packages\n 25. {opkg}: Number of opkg packages\n 26. {am-system}: Number of am-system packages\n 27. {sorcery}: Number of sorcery packages\n 28. {lpkg}: Number of lpkg packages\n 29. {lpkgbuild}: Number of lpkgbuild packages\n 30. {guix-system}: Number of guix-system packages\n 31. {guix-user}: Number of guix-user packages\n 32. {guix-home}: Number of guix-home packages\n 33. {linglong}: Number of linglong packages\n 34. {pacstall}: Number of pacstall packages\n 35. {mport}: Number of mport packages\n 36. {qi}: Number of qi packages\n 37. {am-user}: Number of am-user (aka appman) packages\n 38. {pkgsrc}: Number of pkgsrc packages\n 39. {hpkg-system}: Number of hpkg-system packages\n 40. {hpkg-user}: Number of hpkg-user packages\n 41. {pisi}: Number of pisi packages\n 42. {nix-all}: Total number of all nix packages\n 43. {flatpak-all}: Total number of all flatpak app packages\n 44. {brew-all}: Total number of all brew packages\n 45. {guix-all}: Total number of all guix packages\n 46. {hpkg-all}: Total number of all hpkg packages",
282+
"description": "Output format of the module `Packages`. See Wiki for formatting syntax\n 1. {all}: Number of all packages\n 2. {pacman}: Number of pacman packages\n 3. {pacman-branch}: Pacman branch on manjaro\n 4. {dpkg}: Number of dpkg packages\n 5. {rpm}: Number of rpm packages\n 6. {emerge}: Number of emerge packages\n 7. {eopkg}: Number of eopkg packages\n 8. {xbps}: Number of xbps packages\n 9. {nix-system}: Number of nix-system packages\n 10. {nix-user}: Number of nix-user packages\n 11. {nix-default}: Number of nix-default packages\n 12. {apk}: Number of apk packages\n 13. {pkg}: Number of pkg packages\n 14. {flatpak-system}: Number of flatpak-system app packages\n 15. {flatpak-user}: Number of flatpak-user app packages\n 16. {snap}: Number of snap packages\n 17. {brew}: Number of brew packages\n 18. {brew-cask}: Number of brew-cask packages\n 19. {macports}: Number of macports packages\n 20. {scoop}: Number of scoop packages\n 21. {choco}: Number of choco packages\n 22. {pkgtool}: Number of pkgtool packages\n 23. {paludis}: Number of paludis packages\n 24. {winget}: Number of winget packages\n 25. {opkg}: Number of opkg packages\n 26. {am-system}: Number of am-system packages\n 27. {sorcery}: Number of sorcery packages\n 28. {lpkg}: Number of lpkg packages\n 29. {lpkgbuild}: Number of lpkgbuild packages\n 30. {guix-system}: Number of guix-system packages\n 31. {guix-user}: Number of guix-user packages\n 32. {guix-home}: Number of guix-home packages\n 33. {linglong}: Number of linglong packages\n 34. {pacstall}: Number of pacstall packages\n 35. {mport}: Number of mport packages\n 36. {qi}: Number of qi packages\n 37. {am-user}: Number of am-user (aka appman) packages\n 38. {pkgsrc}: Number of pkgsrc packages\n 39. {hpkg-system}: Number of hpkg-system packages\n 40. {hpkg-user}: Number of hpkg-user packages\n 41. {pisi}: Number of pisi packages\n 42. {soar}: Number of soar packages\n 43. {nix-all}: Total number of all nix packages\n 44. {flatpak-all}: Total number of all flatpak app packages\n 45. {brew-all}: Total number of all brew packages\n 46. {guix-all}: Total number of all guix packages\n 47. {hpkg-all}: Total number of all hpkg packages",
283283
"type": "string"
284284
},
285285
"physicaldiskFormat": {

src/detection/packages/packages.h

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ typedef struct FFPackagesResult
4040
uint32_t rpm;
4141
uint32_t scoop;
4242
uint32_t snap;
43+
uint32_t soar;
4344
uint32_t sorcery;
4445
uint32_t winget;
4546
uint32_t xbps;

src/detection/packages/packages_linux.c

+3
Original file line numberDiff line numberDiff line change
@@ -682,4 +682,7 @@ void ffDetectPackagesImpl(FFPackagesResult* result, FFPackagesOptions* options)
682682

683683
if (!(options->disabled & FF_PACKAGES_FLAG_AM_BIT))
684684
result->amUser = getAMUser();
685+
686+
if (!(options->disabled & FF_PACKAGES_FLAG_SOAR_BIT))
687+
result->soar += getSQLite3Int(&baseDir, ".local/share/soar/db/soar.db", "SELECT COUNT(DISTINCT CONCAT(pkg_id, pkg_name)) FROM packages WHERE is_installed = true", "soar");
685688
}

src/modules/packages/option.h

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ typedef enum __attribute__((__packed__)) FFPackagesFlags
3838
FF_PACKAGES_FLAG_PKGSRC_BIT = 1 << 28,
3939
FF_PACKAGES_FLAG_HPKG_BIT = 1 << 29,
4040
FF_PACKAGES_FLAG_PISI_BIT = 1 << 30,
41+
FF_PACKAGES_FLAG_SOAR_BIT = 1 << 31,
4142
FF_PACKAGES_FLAG_FORCE_UNSIGNED = UINT32_MAX,
4243
} FFPackagesFlags;
4344
static_assert(sizeof(FFPackagesFlags) == sizeof(uint32_t), "");

src/modules/packages/packages.c

+7
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ void ffPrintPackages(FFPackagesOptions* options)
7878
FF_PRINT_PACKAGE(mport)
7979
FF_PRINT_PACKAGE(qi)
8080
FF_PRINT_PACKAGE(pisi)
81+
FF_PRINT_PACKAGE(soar)
8182

8283
putchar('\n');
8384
}
@@ -130,6 +131,7 @@ void ffPrintPackages(FFPackagesOptions* options)
130131
FF_FORMAT_ARG(counts.hpkgSystem, "hpkg-system"),
131132
FF_FORMAT_ARG(counts.hpkgUser, "hpkg-user"),
132133
FF_FORMAT_ARG(counts.pisi, "pisi"),
134+
FF_FORMAT_ARG(counts.soar, "soar"),
133135
FF_FORMAT_ARG(nixAll, "nix-all"),
134136
FF_FORMAT_ARG(flatpakAll, "flatpak-all"),
135137
FF_FORMAT_ARG(brewAll, "brew-all"),
@@ -222,6 +224,7 @@ bool ffParsePackagesCommandOptions(FFPackagesOptions* options, const char* key,
222224
case 'S': if (false);
223225
FF_TEST_PACKAGE_NAME(SCOOP)
224226
FF_TEST_PACKAGE_NAME(SNAP)
227+
FF_TEST_PACKAGE_NAME(SOAR)
225228
FF_TEST_PACKAGE_NAME(SORCERY)
226229
break;
227230
case 'W': if (false);
@@ -341,6 +344,7 @@ void ffParsePackagesJsonObject(FFPackagesOptions* options, yyjson_val* module)
341344
case 'S': if (false);
342345
FF_TEST_PACKAGE_NAME(SCOOP)
343346
FF_TEST_PACKAGE_NAME(SNAP)
347+
FF_TEST_PACKAGE_NAME(SOAR)
344348
FF_TEST_PACKAGE_NAME(SORCERY)
345349
break;
346350
case 'W': if (false);
@@ -400,6 +404,7 @@ void ffGeneratePackagesJsonConfig(FFPackagesOptions* options, yyjson_mut_doc* do
400404
FF_TEST_PACKAGE_NAME(RPM)
401405
FF_TEST_PACKAGE_NAME(SCOOP)
402406
FF_TEST_PACKAGE_NAME(SNAP)
407+
FF_TEST_PACKAGE_NAME(SOAR)
403408
FF_TEST_PACKAGE_NAME(SORCERY)
404409
FF_TEST_PACKAGE_NAME(WINGET)
405410
FF_TEST_PACKAGE_NAME(XBPS)
@@ -459,6 +464,7 @@ void ffGeneratePackagesJsonResult(FF_MAYBE_UNUSED FFPackagesOptions* options, yy
459464
FF_APPEND_PACKAGE_COUNT(rpm)
460465
FF_APPEND_PACKAGE_COUNT(scoop)
461466
FF_APPEND_PACKAGE_COUNT(snap)
467+
FF_APPEND_PACKAGE_COUNT(soar)
462468
FF_APPEND_PACKAGE_COUNT(sorcery)
463469
FF_APPEND_PACKAGE_COUNT(winget)
464470
FF_APPEND_PACKAGE_COUNT(xbps)
@@ -515,6 +521,7 @@ static FFModuleBaseInfo ffModuleInfo = {
515521
{"Number of hpkg-system packages", "hpkg-system"},
516522
{"Number of hpkg-user packages", "hpkg-user"},
517523
{"Number of pisi packages", "pisi"},
524+
{"Number of soar packages", "soar"},
518525
{"Total number of all nix packages", "nix-all"},
519526
{"Total number of all flatpak app packages", "flatpak-all"},
520527
{"Total number of all brew packages", "brew-all"},

0 commit comments

Comments
 (0)