From 5ab8a6ee684ce6c3573f753af872e90a194649a9 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Sat, 23 Aug 2025 16:32:14 +0300 Subject: [PATCH] Add Bedrock Linux support --- config/ascii/bedrock | 12 ++++++++++++ src/system.go | 26 +++++++++++++++++++------- 2 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 config/ascii/bedrock diff --git a/config/ascii/bedrock b/config/ascii/bedrock new file mode 100644 index 0000000..2a54957 --- /dev/null +++ b/config/ascii/bedrock @@ -0,0 +1,12 @@ +#/7;8;8;7 +${C1} \\\\\\\\\\\\ + \\\ \\\ + \\\ \\\ + \\\ \\\\\\\\\\\\\\\\\ + \\\ \\\ + \\\ \\\ + \\\ ${C2}______ \\\ + \\\ /// + \\\ /// + \\\ /// + \\\//////////////// diff --git a/src/system.go b/src/system.go index a29327c..69629d5 100644 --- a/src/system.go +++ b/src/system.go @@ -1,11 +1,12 @@ package main import ( - "github.com/mitchellh/go-ps" "os" "os/exec" "path" "strings" + + "github.com/mitchellh/go-ps" ) type DistroInfo struct { @@ -24,13 +25,24 @@ func GetDistroInfo() DistroInfo { info.LongName = strings.TrimSpace(config.DistroName) info.ShortName = strings.TrimSpace(config.DistroName) } - var releaseMap = make(map[string]string) - if _, err := os.Stat("/etc/os-release"); err == nil { - releaseMap, err = ReadKeyValueFile("/etc/os-release") - if err != nil { - return info - } + + // Detect release file location + var releaseFile string + if _, err := os.Stat("/bedrock/etc/os-release"); os.Getenv("BEDROCK_RESTRICT") == "" && err == nil { + // Using Bedrock Linux + releaseFile = "/bedrock/etc/os-release" + } else if _, err := os.Stat("/etc/os-release"); err == nil { + // Using a regular linux distribution + releaseFile = "/etc/os-release" + } else { + return info } + + releaseMap, err := ReadKeyValueFile(releaseFile) + if err != nil { + return info + } + if id, ok := releaseMap["ID"]; ok { info.ID = id }