Skip to content

Commit

Permalink
Use OS icon if distro not supported
Browse files Browse the repository at this point in the history
  • Loading branch information
jtyr committed May 9, 2019
1 parent b5a2cd9 commit 6913c1a
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 10 deletions.
13 changes: 10 additions & 3 deletions pkg/cars/os/main.go
Expand Up @@ -54,7 +54,7 @@ var symbols = map[string]iconColor {
"opensuse-leap": { icon: "\uf314", color: "113", }, // nf-linux-opensuse
"opensuse-tumbleweed": { icon: "\uf314", color: "113", }, // nf-linux-opensuse
"raspbian": { icon: "\uf315", color: "125", }, // nf-linux-raspberry_pi
"redhat": { icon: "\ue7bb", color: "1", }, // nf-dev-redhat
"rhel": { icon: "\ue7bb", color: "1", }, // nf-dev-redhat
"sabayon": { icon: "\uf317", color: "255", }, // nf-linux-sabayon
"slackware": { icon: "\uf318", color: "63", }, // nf-linux-slackware
"sles": { icon: "\uf314", color: "113", }, // nf-linux-opensuse
Expand All @@ -68,13 +68,16 @@ var osName string
// Path to the os-release file.
var osReleaseFile = "/etc/os-release"

// OS type
var goos = runtime.GOOS

// Returns the OS name.
func getOsName() string {
if osName != "" {
return osName
}

osName = runtime.GOOS
osName = goos

if _, err := os.Stat(osReleaseFile); ! os.IsNotExist(err) {
file, err := os.Open(osReleaseFile)
Expand All @@ -92,8 +95,12 @@ func getOsName() string {
line := scanner.Text()

if len(line) > 3 && line[:3] == "ID=" {
osName = strings.Replace(
id := strings.Replace(
strings.Replace(line[3:], "\"", "", -1), "'", "", -1)

if _, ok := symbols[id]; ok {
osName = id
}
}
}
}
Expand Down
46 changes: 39 additions & 7 deletions pkg/cars/os/main_test.go
@@ -1,37 +1,69 @@
package os

import (
"io/ioutil"
"log"
"os"
"testing"
)

func TestInitDefault(t *testing.T) {
tests := []struct {
goos string
name string
osRelease string
osReleaseFile string
expectedOutput string
}{
{
goos: "linux",
name: "linux",
osRelease: "/proc/1/environ",
osReleaseFile: "/proc/1/environ",
expectedOutput: "\uf17c",
},
{
goos: "linux",
name: "unknown",
osRelease: "/etc/os-release",
expectedOutput: "?",
expectedOutput: "\uf17c",
},
{
goos: "linux",
name: "arch",
expectedOutput: "\uf303",
},
{
goos: "unknown",
name: "unknown",
osRelease: "/etc/os-release",
osReleaseFile: "/etc/os-release.unknown",
expectedOutput: "?",
},
}

for i, test := range tests {
os.Setenv("GBT_CAR_OS_NAME", test.name)
osReleaseFile = test.osRelease
osName = ""
goos = test.goos

if test.osReleaseFile == "" {
content := []byte("ID=" + test.name)
tmpfile, err := ioutil.TempFile("", "test")

if err != nil {
log.Fatal(err)
}

osReleaseFile = tmpfile.Name()

defer os.Remove(tmpfile.Name())

if _, err := tmpfile.Write(content); err != nil {
log.Fatal(err)
}

if err := tmpfile.Close(); err != nil {
log.Fatal(err)
}
} else {
osReleaseFile = test.osReleaseFile
}

car := Car{}

Expand Down

0 comments on commit 6913c1a

Please sign in to comment.