2022-10-08 17:41:25 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "fastfetch.h"
|
2025-08-04 14:25:14 +08:00
|
|
|
#include "modules/packages/option.h"
|
2022-10-08 17:41:25 +08:00
|
|
|
|
2026-03-29 09:28:49 +08:00
|
|
|
typedef struct FFPackagesResult {
|
2025-01-08 09:44:45 +08:00
|
|
|
uint32_t amSystem;
|
|
|
|
|
uint32_t amUser;
|
2022-10-13 21:43:31 +02:00
|
|
|
uint32_t apk;
|
2026-04-21 14:00:04 +08:00
|
|
|
uint32_t appimage;
|
2022-10-13 21:43:31 +02:00
|
|
|
uint32_t brew;
|
2022-12-13 10:57:40 +08:00
|
|
|
uint32_t brewCask;
|
2026-04-27 13:31:08 +02:00
|
|
|
uint32_t cards;
|
2022-10-23 22:16:12 +08:00
|
|
|
uint32_t choco;
|
2022-10-08 17:41:25 +08:00
|
|
|
uint32_t dpkg;
|
|
|
|
|
uint32_t emerge;
|
2022-12-27 17:36:58 +08:00
|
|
|
uint32_t eopkg;
|
2023-03-24 17:47:03 +08:00
|
|
|
uint32_t flatpakSystem;
|
|
|
|
|
uint32_t flatpakUser;
|
2024-05-28 02:50:18 +02:00
|
|
|
uint32_t guixHome;
|
|
|
|
|
uint32_t guixSystem;
|
|
|
|
|
uint32_t guixUser;
|
2025-02-18 10:38:14 +08:00
|
|
|
uint32_t hpkgSystem;
|
|
|
|
|
uint32_t hpkgUser;
|
2025-12-01 09:10:07 +08:00
|
|
|
uint32_t kiss;
|
2024-08-25 20:19:14 -05:00
|
|
|
uint32_t linglong;
|
2024-05-16 22:19:26 -03:00
|
|
|
uint32_t lpkg;
|
|
|
|
|
uint32_t lpkgbuild;
|
2024-11-10 23:32:22 +08:00
|
|
|
uint32_t macports;
|
2026-02-22 22:33:27 +08:00
|
|
|
uint32_t moss;
|
2026-04-21 14:00:04 +08:00
|
|
|
uint32_t mport;
|
2022-10-08 17:41:25 +08:00
|
|
|
uint32_t nixDefault;
|
2022-10-13 21:43:31 +02:00
|
|
|
uint32_t nixSystem;
|
|
|
|
|
uint32_t nixUser;
|
2023-10-07 14:02:16 +08:00
|
|
|
uint32_t opkg;
|
2022-10-13 21:43:31 +02:00
|
|
|
uint32_t pacman;
|
2024-11-10 11:35:27 +08:00
|
|
|
uint32_t pacstall;
|
2023-07-20 16:43:29 +01:00
|
|
|
uint32_t paludis;
|
2025-02-24 10:29:14 +03:00
|
|
|
uint32_t pisi;
|
2022-10-08 17:41:25 +08:00
|
|
|
uint32_t pkg;
|
2025-01-17 10:39:41 +08:00
|
|
|
uint32_t pkgsrc;
|
2023-07-03 23:18:36 +08:00
|
|
|
uint32_t pkgtool;
|
2022-10-13 21:43:31 +02:00
|
|
|
uint32_t rpm;
|
2025-07-29 19:22:18 +08:00
|
|
|
uint32_t scoopGlobal;
|
2026-04-21 14:00:04 +08:00
|
|
|
uint32_t scoopUser;
|
2022-10-13 21:43:31 +02:00
|
|
|
uint32_t snap;
|
2025-04-05 21:39:27 +05:45
|
|
|
uint32_t soar;
|
2024-04-30 20:25:04 -07:00
|
|
|
uint32_t sorcery;
|
2023-09-08 15:25:22 +08:00
|
|
|
uint32_t winget;
|
2022-10-13 21:43:31 +02:00
|
|
|
uint32_t xbps;
|
2022-10-08 17:41:25 +08:00
|
|
|
|
2026-03-29 09:28:49 +08:00
|
|
|
uint32_t all; // Make sure this goes last
|
2022-10-23 22:16:12 +08:00
|
|
|
|
2022-10-08 17:41:25 +08:00
|
|
|
FFstrbuf pacmanBranch;
|
2022-10-13 21:43:31 +02:00
|
|
|
} FFPackagesResult;
|
2022-10-08 17:41:25 +08:00
|
|
|
|
2026-06-04 15:45:21 +08:00
|
|
|
#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
|
|
|
|
|
|
2023-10-29 19:37:31 +08:00
|
|
|
const char* ffDetectPackages(FFPackagesResult* result, FFPackagesOptions* options);
|
2024-09-12 15:39:22 +08:00
|
|
|
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);
|
2025-01-17 10:39:41 +08:00
|
|
|
|
2025-08-24 19:35:33 +08:00
|
|
|
#if defined(__linux__) || defined(__APPLE__) || defined(__GNU__)
|
2025-08-12 19:25:10 +08:00
|
|
|
uint32_t ffPackagesGetNix(FFstrbuf* baseDir, const char* dirname);
|
|
|
|
|
#endif
|
2025-01-17 10:39:41 +08:00
|
|
|
#ifndef _WIN32
|
2025-01-17 15:01:23 +08:00
|
|
|
uint32_t ffPackagesGetNumElements(const char* dirname, bool isdir);
|
2025-01-17 10:39:41 +08:00
|
|
|
#endif
|