ohmu
·
2026-10-15
1#include "packages.h"
2
3#include "common/settings.h"
4
5static uint32_t getSQLite3Int(const char* dbPath, const char* query, const char* packageId) {
6 FF_STRBUF_AUTO_DESTROY cacheDir = ffStrbufCreate();
7 FF_STRBUF_AUTO_DESTROY cacheContent = ffStrbufCreate();
8
9 uint32_t num_elements;
10 if (ffPackagesReadCache(&cacheDir, &cacheContent, dbPath, packageId, &num_elements)) {
11 return num_elements;
12 }
13
14 num_elements = (uint32_t) ffSettingsGetSQLite3Int(dbPath, query);
15
16 ffPackagesWriteCache(&cacheDir, &cacheContent, num_elements);
17
18 return num_elements;
19}
20
21void ffDetectPackagesImpl(FFPackagesResult* result, FFPackagesOptions* options) {
22 if (FF_PACKAGES_IS_ENABLED(options, PKG)) {
23 result->pkg = getSQLite3Int(FASTFETCH_TARGET_DIR_ROOT "/var/db/pkg/local.sqlite", "SELECT count(*) FROM packages", "pkg");
24 }
25 if (FF_PACKAGES_IS_ENABLED(options, MPORT)) {
26 result->mport = getSQLite3Int(FASTFETCH_TARGET_DIR_ROOT "/var/db/mport/master.db", "SELECT count(*) FROM packages", "mport");
27 }
28}