distro/distro.go
func Detect() (Distro, error) {
	var id string
	var err error

	if _, err = os.Stat("/etc/os-release"); !os.IsNotExist(err) {
		cfg, err := shconf.ParseFile("/etc/os-release")
		if err != nil {
			return 0, err
		}

		if id, err = cfg.Get("ID"); err != nil {
			return 0, err
		}
		if v, found := idToDistro[id]; found {
			return v, nil
		}

	} else if _, err = os.Stat("/etc/centos-release"); !os.IsNotExist(err) {
		return CentOS, nil
	} else if _, err = os.Stat("/etc/pclinuxos-release"); !os.IsNotExist(err) {
		return PCLinuxOS, nil
	}

	panic("Linux distribution unsopported")
}
func Detect() (Distro, error) {
	var id string
	var err error

	if _, err = os.Stat("/etc/os-release"); !os.IsNotExist(err) {
		cfg, err := shconf.ParseFile("/etc/os-release")
		if err != nil {
			return 0, err
		}

		if id, err = cfg.Get("ID"); err != nil {
			return 0, err
		}
		if v, found := idToDistro[id]; found {
			return v, nil
		}

	} else if _, err = os.Stat("/etc/centos-release"); !os.IsNotExist(err) {
		return CentOS, nil
	} else if _, err = os.Stat("/etc/pclinuxos-release"); !os.IsNotExist(err) {
		return PCLinuxOS, nil
	}

	panic("Linux distribution unsopported")
}
// Detect returns the Linux distribution.