5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-03 07:41:37 +08:00
wails/cmd/linux.go
2018-12-19 12:49:04 -08:00

59 lines
1.1 KiB
Go

package cmd
import (
"strings"
)
// LinuxDistribution is of type int
type LinuxDistribution int
const (
// Ubuntu distro
Ubuntu LinuxDistribution = 0
)
// DistroInfo contains all the information relating to a linux distribution
type DistroInfo struct {
Distribution LinuxDistribution
Description string
Release string
Codename string
DistributorId string
}
func GetLinuxDistroInfo() *DistroInfo {
result := &DistroInfo{}
program := NewProgramHelper()
// Does lsb_release exist?
lsbRelease := program.FindProgram("lsb_release")
if lsbRelease != nil {
stdout, _, err, _ := lsbRelease.Run("-a")
if err != nil {
return nil
}
for _, line := range strings.Split(stdout, "\n") {
if strings.Contains(line, ":") {
// Iterate lines a
details := strings.Split(line, ":")
key := strings.TrimSpace(details[0])
value := strings.TrimSpace(details[1])
switch key {
case "Distributor ID":
result.DistributorId = value
case "Description":
result.Description = value
case "Release":
result.Release = value
case "Codename":
result.Codename = value
}
}
}
}
return result
}