master ohmu/fastfetch-openbsd / src / detection / packages / packages.h
ohmu  ·  2026-10-15
 1#pragma once
 2
 3#include "fastfetch.h"
 4#include "modules/packages/option.h"
 5
 6typedef struct FFPackagesResult {
 7    uint32_t amSystem;
 8    uint32_t amUser;
 9    uint32_t apk;
10    uint32_t appimage;
11    uint32_t brew;
12    uint32_t brewCask;
13    uint32_t cards;
14    uint32_t choco;
15    uint32_t crux;
16    uint32_t dpkg;
17    uint32_t emerge;
18    uint32_t eopkg;
19    uint32_t flatpakSystem;
20    uint32_t flatpakUser;
21    uint32_t guixHome;
22    uint32_t guixSystem;
23    uint32_t guixUser;
24    uint32_t hpkgSystem;
25    uint32_t hpkgUser;
26    uint32_t installrelease;
27    uint32_t kiss;
28    uint32_t linglong;
29    uint32_t lpkg;
30    uint32_t lpkgbuild;
31    uint32_t macports;
32    uint32_t moss;
33    uint32_t mport;
34    uint32_t nixDefault;
35    uint32_t nixSystem;
36    uint32_t nixUser;
37    uint32_t opkg;
38    uint32_t pacman;
39    uint32_t pacstall;
40    uint32_t paludis;
41    uint32_t pisi;
42    uint32_t pkg;
43    uint32_t pkgsrc;
44    uint32_t pkgtool;
45    uint32_t porg;
46    uint32_t rpm;
47    uint32_t rum;
48    uint32_t scoopGlobal;
49    uint32_t scoopUser;
50    uint32_t snap;
51    uint32_t soar;
52    uint32_t sorcery;
53    uint32_t winget;
54    uint32_t xbps;
55
56    uint32_t all; // Make sure this goes last
57
58    FFstrbuf pacmanBranch;
59} FFPackagesResult;
60
61#if FF_PACKAGES_REMOVE_DISABLED
62    #define FF_PACKAGES_IS_ENABLED(options, pkgName) ({ (void) options; !((FF_PACKAGES_DISABLE_LIST) & (FF_PACKAGES_FLAG_ ## pkgName ## _BIT)); })
63#else
64    #define FF_PACKAGES_IS_ENABLED(options, pkgName) (!((options)->disabled & (FF_PACKAGES_FLAG_ ## pkgName ## _BIT)))
65#endif
66
67const char* ffDetectPackages(FFPackagesResult* result, FFPackagesOptions* options);
68bool ffPackagesReadCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, const char* filePath, const char* packageId, uint32_t* result);
69bool ffPackagesReadCacheKey(FFstrbuf* cacheDir, FFstrbuf* cacheContent, uint64_t cacheKey, const char* packageId, uint32_t* result);
70bool ffPackagesWriteCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, uint32_t num_elements);
71
72#if defined(__linux__) || defined(__APPLE__) || defined(__GNU__)
73uint32_t ffPackagesGetNix(FFstrbuf* baseDir, const char* dirname);
74#endif
75#ifndef _WIN32
76uint32_t ffPackagesGetNumElements(const char* dirname, bool isdir);
77#endif