summaryrefslogtreecommitdiffstats
path: root/src/detection/packages/packages.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/detection/packages/packages.h')
-rw-r--r--src/detection/packages/packages.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/detection/packages/packages.h b/src/detection/packages/packages.h
new file mode 100644
index 0000000..f0d4200
--- /dev/null
+++ b/src/detection/packages/packages.h
@@ -0,0 +1,72 @@
+#pragma once
+
+#include "fastfetch.h"
+#include "modules/packages/option.h"
+
+typedef struct FFPackagesResult {
+ uint32_t amSystem;
+ uint32_t amUser;
+ uint32_t apk;
+ uint32_t appimage;
+ uint32_t brew;
+ uint32_t brewCask;
+ uint32_t cards;
+ uint32_t choco;
+ uint32_t dpkg;
+ uint32_t emerge;
+ uint32_t eopkg;
+ uint32_t flatpakSystem;
+ uint32_t flatpakUser;
+ uint32_t guixHome;
+ uint32_t guixSystem;
+ uint32_t guixUser;
+ uint32_t hpkgSystem;
+ uint32_t hpkgUser;
+ uint32_t kiss;
+ uint32_t linglong;
+ uint32_t lpkg;
+ uint32_t lpkgbuild;
+ uint32_t macports;
+ uint32_t moss;
+ uint32_t mport;
+ uint32_t nixDefault;
+ uint32_t nixSystem;
+ uint32_t nixUser;
+ uint32_t opkg;
+ uint32_t pacman;
+ uint32_t pacstall;
+ uint32_t paludis;
+ uint32_t pisi;
+ uint32_t pkg;
+ uint32_t pkgsrc;
+ uint32_t pkgtool;
+ uint32_t rpm;
+ uint32_t scoopGlobal;
+ uint32_t scoopUser;
+ uint32_t snap;
+ uint32_t soar;
+ uint32_t sorcery;
+ uint32_t winget;
+ uint32_t xbps;
+
+ uint32_t all; // Make sure this goes last
+
+ FFstrbuf pacmanBranch;
+} FFPackagesResult;
+
+#if FF_PACKAGES_REMOVE_DISABLED
+ #define FF_PACKAGES_IS_ENABLED(options, pkgName) ({ (void) options; !((FF_PACKAGES_DISABLE_LIST) & (FF_PACKAGES_FLAG_ ## pkgName ## _BIT)); })
+#else
+ #define FF_PACKAGES_IS_ENABLED(options, pkgName) (!((options)->disabled & (FF_PACKAGES_FLAG_ ## pkgName ## _BIT)))
+#endif
+
+const char* ffDetectPackages(FFPackagesResult* result, FFPackagesOptions* options);
+bool ffPackagesReadCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, const char* filePath, const char* packageId, uint32_t* result);
+bool ffPackagesWriteCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, uint32_t num_elements);
+
+#if defined(__linux__) || defined(__APPLE__) || defined(__GNU__)
+uint32_t ffPackagesGetNix(FFstrbuf* baseDir, const char* dirname);
+#endif
+#ifndef _WIN32
+uint32_t ffPackagesGetNumElements(const char* dirname, bool isdir);
+#endif