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 -1
View File
@@ -3,7 +3,7 @@
--kernel-format Sysname: {}; Release: {}; Version: {}
--uptime-format Days: {}; Hours: {}; Minutes: {}; Seconds: {}
--processes-format Count: {}
--packages-format All: {}; pacman: {}; pacman branch: {}; dpkg: {}; rpm: {}; emerge: {}; xbps: {}; apk: {}; flatpak: {}; snap: {}; brew: {}
--packages-format All: {}; pacman: {}; pacman branch: {}; dpkg: {}; rpm: {}; emerge: {}; xbps: {}; apk: {}; flatpak: {}; snap: {}; brew: {}; brew-cask: {}; port: {}; scoop: {}; choco: {}
--shell-format Process name: {}; Process path: {}; Process exe: {}; Process version: {}; User path: {}; User exe: {}; User version: {}
--resolution-format Width: {}; Height: {}; Refresh rate: {}
--de-format Process name: {}; Pretty name: {}; Version: {}
+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();
}
+5 -2
View File
@@ -3,7 +3,7 @@
#include "detection/packages/packages.h"
#define FF_PACKAGES_MODULE_NAME "Packages"
#define FF_PACKAGES_NUM_FORMAT_ARGS 17
#define FF_PACKAGES_NUM_FORMAT_ARGS 19
void ffPrintPackages(FFinstance* instance)
{
@@ -51,6 +51,7 @@ void ffPrintPackages(FFinstance* instance)
FF_PRINT_PACKAGE(flatpak)
FF_PRINT_PACKAGE(snap)
FF_PRINT_PACKAGE(brew)
FF_PRINT_PACKAGE_NAME(brewCask, "brew-cask")
FF_PRINT_PACKAGE(port)
FF_PRINT_PACKAGE(scoop)
FF_PRINT_PACKAGE(choco)
@@ -78,8 +79,10 @@ void ffPrintPackages(FFinstance* instance)
{FF_FORMAT_ARG_TYPE_UINT, &counts->flatpak},
{FF_FORMAT_ARG_TYPE_UINT, &counts->snap},
{FF_FORMAT_ARG_TYPE_UINT, &counts->brew},
{FF_FORMAT_ARG_TYPE_UINT, &counts->brewCask},
{FF_FORMAT_ARG_TYPE_UINT, &counts->port},
{FF_FORMAT_ARG_TYPE_UINT, &counts->scoop}
{FF_FORMAT_ARG_TYPE_UINT, &counts->scoop},
{FF_FORMAT_ARG_TYPE_UINT, &counts->choco},
});
}
}