Packages: split brew-cellar and brew-cask (macOS)

`brew info` shows number of `brew-cellar` packages only. Split `brew-cellar` out of `brew` to avoid users from confusion.
This commit is contained in:
李通洲
2022-12-13 10:57:40 +08:00
parent c242001a77
commit 3b2c189083
4 changed files with 15 additions and 16 deletions
+1
View File
@@ -9,6 +9,7 @@ typedef struct FFPackagesResult
{
uint32_t apk;
uint32_t brew;
uint32_t brewCask;
uint32_t choco;
uint32_t dpkg;
uint32_t emerge;
+8 -13
View File
@@ -25,35 +25,30 @@ static uint32_t getNumElements(const char* dirname, unsigned char type)
return num_elements;
}
static uint32_t countBrewPackages(const char* dirname)
static void countBrewPackages(const char* dirname, FFPackagesResult* result)
{
FF_STRBUF_AUTO_DESTROY baseDir;
ffStrbufInitS(&baseDir, dirname);
uint32_t result = 0;
uint32_t baseDirLength = baseDir.length;
ffStrbufAppendS(&baseDir, "/Caskroom");
result += getNumElements(baseDir.chars, DT_DIR);
result->brewCask += getNumElements(baseDir.chars, DT_DIR);
ffStrbufSubstrBefore(&baseDir, baseDirLength);
ffStrbufAppendS(&baseDir, "/Cellar");
result += getNumElements(baseDir.chars, DT_DIR);
result->brew += getNumElements(baseDir.chars, DT_DIR);
ffStrbufSubstrBefore(&baseDir, baseDirLength);
return result;
}
static uint32_t getBrewPackages()
static void getBrewPackages(FFPackagesResult* result)
{
const char* prefix = getenv("HOMEBREW_PREFIX");
if(ffStrSet(prefix))
return countBrewPackages(prefix);
return countBrewPackages(prefix, result);
uint32_t result = 0;
result += countBrewPackages(FASTFETCH_TARGET_DIR_ROOT"/opt/homebrew");
result += countBrewPackages(FASTFETCH_TARGET_DIR_ROOT"/usr/local");
return result;
countBrewPackages(FASTFETCH_TARGET_DIR_ROOT"/opt/homebrew", result);
countBrewPackages(FASTFETCH_TARGET_DIR_ROOT"/usr/local", result);
}
static uint32_t countMacPortsPackages(const char* dirname)
@@ -77,6 +72,6 @@ static uint32_t getMacPortsPackages()
void ffDetectPackagesImpl(const FFinstance* instance, FFPackagesResult* result)
{
FF_UNUSED(instance);
result->brew = getBrewPackages();
getBrewPackages(result);
result->port = getMacPortsPackages();
}