mirror of
https://github.com/AlchemillaHQ/Sylve.git
synced 2026-06-15 00:56:36 +03:00
92 lines
3.8 KiB
Go
92 lines
3.8 KiB
Go
// SPDX-License-Identifier: BSD-2-Clause
|
|
//
|
|
// Copyright (c) 2025 The FreeBSD Foundation.
|
|
//
|
|
// This software was developed by Hayzam Sherif <hayzam@alchemilla.io>
|
|
// of Alchemilla Ventures Pvt. Ltd. <hello@alchemilla.io>,
|
|
// under sponsorship from the FreeBSD Foundation.
|
|
|
|
package utils
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/alchemillahq/sylve/pkg/utils/sysctl"
|
|
)
|
|
|
|
var getSysctlBytes = sysctl.GetBytes
|
|
|
|
func GetGeomXML() []byte {
|
|
output, err := getSysctlBytes("kern.geom.confxml")
|
|
if err != nil {
|
|
return []byte{}
|
|
}
|
|
|
|
return output
|
|
}
|
|
|
|
func GetDiskTypeFromUUID(uuid string, defaultValue string) string {
|
|
var diskTypes = map[string]string{
|
|
/* This list is not exhaustive, but it covers the most common types, please feel free to add more */
|
|
"00000000-0000-0000-0000-000000000000": "Unused Entry",
|
|
"024DEE41-33E7-11D3-9D69-0008C781F39F": "MBR",
|
|
"C12A7328-F81F-11D2-BA4B-00A0C93EC93B": "EFI",
|
|
"21686148-6449-6E6F-744E-656564454649": "BIOS Boot",
|
|
"D3BFE2DE-3DAF-11DF-BA40-E3A556D89593": "Intel Rapid Start (iFFS)",
|
|
"F4019732-066E-4E12-8273-346C5641494F": "Sony Boot",
|
|
"BFBFAFE7-A34F-448A-9A5B-6213EB736C22": "Lenovo Boot",
|
|
"E3C9E316-0B5C-4DB8-817D-F92DF00215AE": "Windows MSR",
|
|
"EBD0A0A2-B9E5-4433-87C0-68B6B72699C7": "Windows Basic Data",
|
|
"5808C8AA-7E8F-42E0-85D2-E1E90434CFB3": "Windows LDM Metadata",
|
|
"AF9B60A0-1431-4F62-BC68-3311714A69AD": "Windows LDM Data",
|
|
"DE94BBA4-06D1-4D40-A16A-BFD50179D6AC": "Windows Recovery",
|
|
"37AFFC90-EF7D-4E96-91C3-2D7AE055B174": "IBM GPFS",
|
|
"E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D": "Windows Storage Spaces",
|
|
"558D43C5-A1AC-43C0-AAC8-D1472B2923D1": "Windows Storage Replica",
|
|
"75894C1E-3AEB-11D3-B7C1-7B03A0000000": "HP-UX Data",
|
|
"E2A1E728-32E3-11D6-A682-7B03A0000000": "HP-UX Service",
|
|
"0FC63DAF-8483-4772-8E79-3D69D8477DE4": "Linux Filesystem",
|
|
"A19D880F-05FC-4D3B-A006-743F0F84911E": "Linux RAID",
|
|
"4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709": "Linux Root (x86-64)",
|
|
"44479540-F297-41B2-9AF7-D131D5F0458A": "Linux Root (x86)",
|
|
"0657FD6D-A4AB-43C4-84E5-0933C84B4F4F": "Linux Swap",
|
|
"E6D6D379-F507-44C2-A23C-238F2A3DF928": "Linux LVM",
|
|
"933AC7E1-2EB4-4F13-B844-0E14E2AEF915": "Linux /home",
|
|
"BC13C2FF-59E6-4262-A352-B275FD6F7172": "Linux /boot",
|
|
"CA7D7CCB-63ED-4C53-861C-1742536059CC": "Linux LUKS Encryption",
|
|
"516E7CBA-6ECF-11D6-8FF8-00022D09712B": "ZFS",
|
|
"516E7CB6-6ECF-11D6-8FF8-00022D09712B": "UFS",
|
|
"83BD6B9D-7F41-11DC-BE0B-001560B84F0F": "Boot",
|
|
"516E7CB5-6ECF-11D6-8FF8-00022D09712B": "Swap",
|
|
"6A898CC3-1DD2-11B2-99A6-080020736631": "macOS APFS/ZFS",
|
|
"7C3457EF-0000-11AA-AA11-00306543ECAC": "macOS APFS Container",
|
|
"6A85CF4D-1DD2-11B2-99A6-080020736631": "Solaris Root",
|
|
"6A87C46F-1DD2-11B2-99A6-080020736631": "Solaris Swap",
|
|
"6A8B642B-1DD2-11B2-99A6-080020736631": "Solaris Backup",
|
|
"49F48D32-B10E-11DC-B99B-0019D1879648": "NetBSD Swap",
|
|
"49F48D5A-B10E-11DC-B99B-0019D1879648": "NetBSD FFS",
|
|
"FE3A2A5D-4F32-41A7-B725-ACCC3285A309": "Chrome OS Kernel",
|
|
"3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC": "Chrome OS Root",
|
|
"45B0969E-9B03-4F30-B4C6-B4B80CEFF106": "Ceph Journal",
|
|
"4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D": "Ceph OSD",
|
|
"824CC7A0-36A8-11E3-890A-952519AD3F61": "OpenBSD Data",
|
|
"C91818F9-8025-47AF-89D2-F030D7000C2C": "Plan 9",
|
|
"AA31E02A-400F-11DB-9590-000C2911D1B8": "VMware VMFS",
|
|
"9E1A2D38-C612-4316-AA26-8B49521E5A8B": "PowerPC PReP Boot",
|
|
"2568845D-2332-4675-BC39-8FA5A4748D15": "Android Bootloader",
|
|
"49A4D17F-93A3-45C1-A0DE-F50B2EBE2599": "Android Boot",
|
|
"38F428E6-D326-425D-9140-6E0EA133647C": "Android System",
|
|
"A893EF21-E428-470A-9E55-0668FD91A2D9": "Android Cache",
|
|
"DC76DDA9-5AC1-491C-AF42-A82591580C0D": "Android Data",
|
|
"8C8F8EFF-AC95-4770-814A-21994F2DBC8F": "VeraCrypt Encrypted",
|
|
}
|
|
|
|
uuid = strings.ToUpper(uuid)
|
|
|
|
if diskType, ok := diskTypes[uuid]; ok {
|
|
return diskType
|
|
}
|
|
|
|
return defaultValue
|
|
}
|