mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-11-09 22:50:38 +01:00
Host: rename properties
This commit is contained in:
@@ -4,13 +4,13 @@
|
||||
|
||||
typedef struct FFHostResult
|
||||
{
|
||||
FFstrbuf productFamily;
|
||||
FFstrbuf productName;
|
||||
FFstrbuf productVersion;
|
||||
FFstrbuf productSku;
|
||||
FFstrbuf productSerial;
|
||||
FFstrbuf productUuid;
|
||||
FFstrbuf sysVendor;
|
||||
FFstrbuf family;
|
||||
FFstrbuf name;
|
||||
FFstrbuf version;
|
||||
FFstrbuf sku;
|
||||
FFstrbuf serial;
|
||||
FFstrbuf uuid;
|
||||
FFstrbuf vendor;
|
||||
} FFHostResult;
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host);
|
||||
|
||||
@@ -5,32 +5,32 @@
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
// http://newandroidbook.com/ddb/
|
||||
ffSettingsGetAndroidProperty("ro.product.device", &host->productFamily);
|
||||
ffSettingsGetAndroidProperty("ro.product.device", &host->family);
|
||||
|
||||
ffSettingsGetAndroidProperty("ro.product.marketname", &host->productName)
|
||||
|| ffSettingsGetAndroidProperty("ro.vendor.product.display", &host->productName)
|
||||
|| ffSettingsGetAndroidProperty("ro.config.devicename", &host->productName)
|
||||
|| ffSettingsGetAndroidProperty("ro.config.marketing_name", &host->productName)
|
||||
|| ffSettingsGetAndroidProperty("ro.product.vendor.model", &host->productName)
|
||||
|| ffSettingsGetAndroidProperty("ro.product.oppo_model", &host->productName)
|
||||
|| ffSettingsGetAndroidProperty("ro.oppo.market.name", &host->productName)
|
||||
|| ffSettingsGetAndroidProperty("ro.product.brand", &host->productName);
|
||||
ffSettingsGetAndroidProperty("ro.product.marketname", &host->name)
|
||||
|| ffSettingsGetAndroidProperty("ro.vendor.product.display", &host->name)
|
||||
|| ffSettingsGetAndroidProperty("ro.config.devicename", &host->name)
|
||||
|| ffSettingsGetAndroidProperty("ro.config.marketing_name", &host->name)
|
||||
|| ffSettingsGetAndroidProperty("ro.product.vendor.model", &host->name)
|
||||
|| ffSettingsGetAndroidProperty("ro.product.oppo_model", &host->name)
|
||||
|| ffSettingsGetAndroidProperty("ro.oppo.market.name", &host->name)
|
||||
|| ffSettingsGetAndroidProperty("ro.product.brand", &host->name);
|
||||
|
||||
if (ffSettingsGetAndroidProperty("ro.product.model", &host->productVersion))
|
||||
if (ffSettingsGetAndroidProperty("ro.product.model", &host->version))
|
||||
{
|
||||
if (ffStrbufStartsWithIgnCase(&host->productVersion, &host->productName))
|
||||
if (ffStrbufStartsWithIgnCase(&host->version, &host->name))
|
||||
{
|
||||
ffStrbufSubstrAfter(&host->productVersion, host->productName.length);
|
||||
ffStrbufTrimLeft(&host->productVersion, ' ');
|
||||
ffStrbufSubstrAfter(&host->version, host->name.length);
|
||||
ffStrbufTrimLeft(&host->version, ' ');
|
||||
}
|
||||
}
|
||||
|
||||
ffSettingsGetAndroidProperty("ro.product.manufacturer", &host->sysVendor);
|
||||
ffSettingsGetAndroidProperty("ro.product.manufacturer", &host->vendor);
|
||||
|
||||
if(host->sysVendor.length && !ffStrbufStartsWithIgnCase(&host->productName, &host->sysVendor))
|
||||
if(host->vendor.length && !ffStrbufStartsWithIgnCase(&host->name, &host->vendor))
|
||||
{
|
||||
ffStrbufPrependS(&host->productName, " ");
|
||||
ffStrbufPrepend(&host->productName, &host->sysVendor);
|
||||
ffStrbufPrependS(&host->name, " ");
|
||||
ffStrbufPrepend(&host->name, &host->vendor);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
@@ -177,7 +177,7 @@ const char* getProductNameWithIokit(FFstrbuf* result)
|
||||
if (!productName)
|
||||
return "IORegistryEntryCreateCFProperty() failed";
|
||||
|
||||
return ffCfStrGetString(productName, result);
|
||||
return ffCfStrGetString(name, result);
|
||||
}
|
||||
|
||||
const char* getOthersByIokit(FFHostResult* host)
|
||||
@@ -188,29 +188,29 @@ const char* getOthersByIokit(FFHostResult* host)
|
||||
|
||||
FF_CFTYPE_AUTO_RELEASE CFStringRef serialNumber = IORegistryEntryCreateCFProperty(registryEntry, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault, kNilOptions);
|
||||
if (serialNumber)
|
||||
ffCfStrGetString(serialNumber, &host->productSerial);
|
||||
ffCfStrGetString(serialNumber, &host->serial);
|
||||
|
||||
FF_CFTYPE_AUTO_RELEASE CFStringRef uuid = IORegistryEntryCreateCFProperty(registryEntry, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, kNilOptions);
|
||||
if (uuid)
|
||||
ffCfStrGetString(uuid, &host->productUuid);
|
||||
ffCfStrGetString(uuid, &host->uuid);
|
||||
|
||||
FF_CFTYPE_AUTO_RELEASE CFStringRef manufacturer = IORegistryEntryCreateCFProperty(registryEntry, CFSTR("manufacturer"), kCFAllocatorDefault, kNilOptions);
|
||||
if (manufacturer)
|
||||
ffCfStrGetString(manufacturer, &host->sysVendor);
|
||||
ffCfStrGetString(manufacturer, &host->vendor);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
const char* error = ffSysctlGetString("hw.model", &host->productFamily);
|
||||
const char* error = ffSysctlGetString("hw.model", &host->family);
|
||||
if (error) return error;
|
||||
|
||||
ffStrbufSetStatic(&host->productName, getProductNameWithHwModel(&host->productFamily));
|
||||
if (host->productName.length == 0)
|
||||
getProductNameWithIokit(&host->productName);
|
||||
if (host->productName.length == 0)
|
||||
ffStrbufSet(&host->productName, &host->productFamily);
|
||||
ffStrbufSetStatic(&host->name, getProductNameWithHwModel(&host->family));
|
||||
if (host->name.length == 0)
|
||||
getProductNameWithIokit(&host->name);
|
||||
if (host->name.length == 0)
|
||||
ffStrbufSet(&host->name, &host->family);
|
||||
getOthersByIokit(host);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.product", &host->productName);
|
||||
ffCleanUpSmbiosValue(&host->productName);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.family", &host->productFamily);
|
||||
ffCleanUpSmbiosValue(&host->productFamily);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.version", &host->productVersion);
|
||||
ffCleanUpSmbiosValue(&host->productVersion);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.sku", &host->productSku);
|
||||
ffCleanUpSmbiosValue(&host->productSku);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.serial", &host->productSerial);
|
||||
ffCleanUpSmbiosValue(&host->productSerial);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.uuid", &host->productUuid);
|
||||
ffCleanUpSmbiosValue(&host->productUuid);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.maker", &host->sysVendor);
|
||||
ffCleanUpSmbiosValue(&host->sysVendor);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.product", &host->name);
|
||||
ffCleanUpSmbiosValue(&host->name);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.family", &host->family);
|
||||
ffCleanUpSmbiosValue(&host->family);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.version", &host->version);
|
||||
ffCleanUpSmbiosValue(&host->version);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.sku", &host->sku);
|
||||
ffCleanUpSmbiosValue(&host->sku);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.serial", &host->serial);
|
||||
ffCleanUpSmbiosValue(&host->serial);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.uuid", &host->uuid);
|
||||
ffCleanUpSmbiosValue(&host->uuid);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.maker", &host->vendor);
|
||||
ffCleanUpSmbiosValue(&host->vendor);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -29,28 +29,28 @@ static void getHostProductName(FFstrbuf* name)
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->productFamily);
|
||||
getHostProductName(&host->productName);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->productVersion);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->productSku);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_serial", "/sys/class/dmi/id/product_serial", &host->productSerial);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_uuid", "/sys/class/dmi/id/product_uuid", &host->productUuid);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->sysVendor);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->family);
|
||||
getHostProductName(&host->name);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->version);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->sku);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_serial", "/sys/class/dmi/id/product_serial", &host->serial);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_uuid", "/sys/class/dmi/id/product_uuid", &host->uuid);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->vendor);
|
||||
|
||||
//KVM/Qemu virtual machine
|
||||
if(ffStrbufStartsWithS(&host->productName, "Standard PC"))
|
||||
ffStrbufPrependS(&host->productName, "KVM/QEMU ");
|
||||
if(ffStrbufStartsWithS(&host->name, "Standard PC"))
|
||||
ffStrbufPrependS(&host->name, "KVM/QEMU ");
|
||||
|
||||
if(host->productFamily.length == 0 && host->productName.length == 0)
|
||||
if(host->family.length == 0 && host->name.length == 0)
|
||||
{
|
||||
const char* wslDistroName = getenv("WSL_DISTRO_NAME");
|
||||
//On WSL, the real host can't be detected. Instead use WSL as host.
|
||||
if(wslDistroName != NULL || getenv("WSL_DISTRO") != NULL || getenv("WSL_INTEROP") != NULL)
|
||||
{
|
||||
ffStrbufAppendS(&host->productName, "Windows Subsystem for Linux");
|
||||
ffStrbufAppendS(&host->name, "Windows Subsystem for Linux");
|
||||
if (wslDistroName)
|
||||
ffStrbufAppendF(&host->productName, " - %s", wslDistroName);
|
||||
ffStrbufAppendS(&host->productFamily, "WSL");
|
||||
ffStrbufAppendF(&host->name, " - %s", wslDistroName);
|
||||
ffStrbufAppendS(&host->family, "WSL");
|
||||
|
||||
FF_STRBUF_AUTO_DESTROY wslVer = ffStrbufCreate(); //Wide characters
|
||||
if(!ffProcessAppendStdOut(&wslVer, (char* const[]){
|
||||
@@ -63,7 +63,7 @@ const char* ffDetectHost(FFHostResult* host)
|
||||
ffStrbufSubstrAfterLastC(&wslVer, ' ');
|
||||
for(uint32_t i = 0; i < wslVer.length; ++i) {
|
||||
if(wslVer.chars[i]) //don't append \0
|
||||
ffStrbufAppendC(&host->productVersion, wslVer.chars[i]);
|
||||
ffStrbufAppendC(&host->version, wslVer.chars[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,16 +9,16 @@ const char* ffDetectHost(FFHostResult* host)
|
||||
if(!ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, L"HARDWARE\\DESCRIPTION\\System\\BIOS", &hKey, NULL))
|
||||
return "ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, L\"HARDWARE\\DESCRIPTION\\System\\BIOS\", &hKey, NULL) failed";
|
||||
|
||||
ffRegReadStrbuf(hKey, L"SystemProductName", &host->productName, NULL);
|
||||
ffCleanUpSmbiosValue(&host->productName);
|
||||
ffRegReadStrbuf(hKey, L"SystemFamily", &host->productFamily, NULL);
|
||||
ffCleanUpSmbiosValue(&host->productFamily);
|
||||
ffRegReadStrbuf(hKey, L"SystemVersion", &host->productVersion, NULL);
|
||||
ffCleanUpSmbiosValue(&host->productVersion);
|
||||
ffRegReadStrbuf(hKey, L"SystemSKU", &host->productSku, NULL);
|
||||
ffCleanUpSmbiosValue(&host->productSku);
|
||||
ffRegReadStrbuf(hKey, L"SystemManufacturer", &host->sysVendor, NULL);
|
||||
ffCleanUpSmbiosValue(&host->sysVendor);
|
||||
ffRegReadStrbuf(hKey, L"SystemProductName", &host->name, NULL);
|
||||
ffCleanUpSmbiosValue(&host->name);
|
||||
ffRegReadStrbuf(hKey, L"SystemFamily", &host->family, NULL);
|
||||
ffCleanUpSmbiosValue(&host->family);
|
||||
ffRegReadStrbuf(hKey, L"SystemVersion", &host->version, NULL);
|
||||
ffCleanUpSmbiosValue(&host->version);
|
||||
ffRegReadStrbuf(hKey, L"SystemSKU", &host->sku, NULL);
|
||||
ffCleanUpSmbiosValue(&host->sku);
|
||||
ffRegReadStrbuf(hKey, L"SystemManufacturer", &host->vendor, NULL);
|
||||
ffCleanUpSmbiosValue(&host->vendor);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user