Shell information has been converted to a Golang function
This commit is contained in:
parent
c13c730e4c
commit
4a2833afff
@ -4,10 +4,10 @@ echo -e "${C3}Distribution: ${C4}${DISTRO_LONG_NAME} ($(uname -m))"
|
|||||||
echo -e "${C3}Hostname: ${C4}$(cat /etc/hostname)"
|
echo -e "${C3}Hostname: ${C4}$(cat /etc/hostname)"
|
||||||
echo -e "${C3}Kernel: ${C4}$(uname -s) $(uname -r)"
|
echo -e "${C3}Kernel: ${C4}$(uname -s) $(uname -r)"
|
||||||
echo -e "${C3}Packages: ${C4}$(get_packages)"
|
echo -e "${C3}Packages: ${C4}$(get_packages)"
|
||||||
echo -e "${C3}Shell: ${C4}$(get_shell)"
|
echo -e "${C3}Shell: ${C4}${USER_SHELL}"
|
||||||
echo -e "${C3}CPU: ${C4}${CPU_MODEL} (${CPU_THREADS} threads)"
|
echo -e "${C3}CPU: ${C4}${CPU_MODEL} (${CPU_THREADS} threads)"
|
||||||
if [ ! -z "$GPU_MODEL" ]; then
|
if [ ! -z "$GPU_MODEL" ]; then
|
||||||
echo -e "${C3}GPU: ${C4}${GPU_MODEL})"
|
echo -e "${C3}GPU: ${C4}${GPU_MODEL}"
|
||||||
fi
|
fi
|
||||||
echo -e "${C3}Memory: ${C4}${MEM_USED} MiB / ${MEM_TOTAL} MiB"
|
echo -e "${C3}Memory: ${C4}${MEM_USED} MiB / ${MEM_TOTAL} MiB"
|
||||||
if xhost >& /dev/null ; then
|
if xhost >& /dev/null ; then
|
||||||
|
@ -9,31 +9,6 @@ command_exists() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
get_shell() {
|
|
||||||
case ${SHELL##*/} in
|
|
||||||
"")
|
|
||||||
echo "Unknown"
|
|
||||||
;;
|
|
||||||
sh|ash|dash|es)
|
|
||||||
echo "${SHELL##*/} $(${SHELL##*/} --version)"
|
|
||||||
;;
|
|
||||||
bash)
|
|
||||||
echo "${SHELL##*/} $(${SHELL##*/} -c "echo "'$BASH_VERSION')"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
SHELL_NAME=${SHELL##*/}
|
|
||||||
SHELL_VERSION="$($SHELL --version)"
|
|
||||||
SHELL_VERSION=${SHELL_VERSION//","}
|
|
||||||
SHELL_VERSION=${SHELL_VERSION//" "}
|
|
||||||
SHELL_VERSION=${SHELL_VERSION//"version"}
|
|
||||||
SHELL_VERSION=${SHELL_VERSION//"$SHELL_NAME"}
|
|
||||||
echo "$SHELL_NAME $SHELL_VERSION"
|
|
||||||
unset SHELL_NAME
|
|
||||||
unset SHELL_VERSION
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
get_screen_resolution() {
|
get_screen_resolution() {
|
||||||
if xhost >& /dev/null && command_exists xdpyinfo; then
|
if xhost >& /dev/null && command_exists xdpyinfo; then
|
||||||
xdpyinfo | grep dimensions | tr -s ' ' | cut -d " " -f3
|
xdpyinfo | grep dimensions | tr -s ' ' | cut -d " " -f3
|
||||||
|
2
main.go
2
main.go
@ -148,7 +148,7 @@ func readConfig() {
|
|||||||
cmd.Env = append(cmd.Env, "MEM_USED="+strconv.Itoa(memory.MemTotal-memory.MemAvailable))
|
cmd.Env = append(cmd.Env, "MEM_USED="+strconv.Itoa(memory.MemTotal-memory.MemAvailable))
|
||||||
cmd.Env = append(cmd.Env, "MEM_FREE="+strconv.Itoa(memory.MemAvailable))
|
cmd.Env = append(cmd.Env, "MEM_FREE="+strconv.Itoa(memory.MemAvailable))
|
||||||
cmd.Env = append(cmd.Env, "DE_WM="+GetDEWM())
|
cmd.Env = append(cmd.Env, "DE_WM="+GetDEWM())
|
||||||
|
cmd.Env = append(cmd.Env, "USER_SHELL="+GetShell())
|
||||||
if getGPUName() != "" {
|
if getGPUName() != "" {
|
||||||
cmd.Env = append(cmd.Env, "GPU_MODEL="+getGPUName())
|
cmd.Env = append(cmd.Env, "GPU_MODEL="+getGPUName())
|
||||||
}
|
}
|
||||||
|
65
utils.go
65
utils.go
@ -8,6 +8,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
"slices"
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -180,6 +181,52 @@ func GetMemoryInfo() Memory {
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetShell() string {
|
||||||
|
runCommand := func(command string) string {
|
||||||
|
cmd := exec.Command("/bin/bash", "-c", command)
|
||||||
|
workdir, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
cmd.Dir = workdir
|
||||||
|
cmd.Env = os.Environ()
|
||||||
|
out, err := cmd.Output()
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return strings.TrimSpace(string(out))
|
||||||
|
}
|
||||||
|
file, err := os.ReadFile("/etc/passwd")
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
str := string(file)
|
||||||
|
shell := ""
|
||||||
|
|
||||||
|
for _, line := range strings.Split(str, "\n") {
|
||||||
|
if strings.TrimSpace(line) == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
userInfo := strings.Split(line, ":")
|
||||||
|
if userInfo[2] == strconv.Itoa(os.Getuid()) {
|
||||||
|
shell = userInfo[6]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
shellName := filepath.Base(shell)
|
||||||
|
switch shellName {
|
||||||
|
case "dash":
|
||||||
|
return "Dash"
|
||||||
|
case "bash":
|
||||||
|
return "Bash " + runCommand("echo $BASH_VERSION")
|
||||||
|
case "zsh":
|
||||||
|
return "Zsh " + runCommand("$SHELL --version | awk '{print $2}'")
|
||||||
|
case "fish":
|
||||||
|
return "Fish " + runCommand("$SHELL --version | awk '{print $3}'")
|
||||||
|
default:
|
||||||
|
return "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func GetDEWM() string {
|
func GetDEWM() string {
|
||||||
processes, err := ps.Processes()
|
processes, err := ps.Processes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -205,27 +252,27 @@ func GetDEWM() string {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
return string(out)
|
return strings.TrimSpace(string(out))
|
||||||
}
|
}
|
||||||
|
|
||||||
if processExists("plasmashell") {
|
if processExists("plasmashell") {
|
||||||
return strings.TrimSpace("KDE Plasma " + runCommand("plasmashell --version | awk '{print $2}'"))
|
return "KDE Plasma " + runCommand("plasmashell --version | awk '{print $2}'")
|
||||||
} else if processExists("gnome-session") {
|
} else if processExists("gnome-session") {
|
||||||
return strings.TrimSpace("Gnome " + runCommand("gnome-shell --version | awk '{print $3}'"))
|
return "Gnome " + runCommand("gnome-shell --version | awk '{print $3}'")
|
||||||
} else if processExists("xfce4-session") {
|
} else if processExists("xfce4-session") {
|
||||||
return strings.TrimSpace("XFCE " + runCommand("xfce4-session --version | grep xfce4-session | awk '{print $2}'"))
|
return "XFCE " + runCommand("xfce4-session --version | grep xfce4-session | awk '{print $2}'")
|
||||||
} else if processExists("cinnamon") {
|
} else if processExists("cinnamon") {
|
||||||
return strings.TrimSpace("Cinnamon " + runCommand("cinnamon --version | awk '{print $3}'"))
|
return "Cinnamon " + runCommand("cinnamon --version | awk '{print $3}'")
|
||||||
} else if processExists("mate-panel") {
|
} else if processExists("mate-panel") {
|
||||||
return strings.TrimSpace("MATE " + runCommand("mate-about --version | awk '{print $4}'"))
|
return "MATE " + runCommand("mate-about --version | awk '{print $4}'")
|
||||||
} else if processExists("lxsession") {
|
} else if processExists("lxsession") {
|
||||||
return "LXDE"
|
return "LXDE"
|
||||||
} else if processExists("sway") {
|
} else if processExists("sway") {
|
||||||
return strings.TrimSpace("Sway " + runCommand("sway --version | awk '{print $3}'"))
|
return "Sway " + runCommand("sway --version | awk '{print $3}'")
|
||||||
} else if processExists("bspwm") {
|
} else if processExists("bspwm") {
|
||||||
return strings.TrimSpace("Bspwm " + runCommand("bspwm -v"))
|
return "Bspwm " + runCommand("bspwm -v")
|
||||||
} else if processExists("icewm-session") {
|
} else if processExists("icewm-session") {
|
||||||
return strings.TrimSpace("IceWM " + runCommand("icewm --version | awk '{print $2}'"))
|
return "IceWM " + runCommand("icewm --version | awk '{print $2}'")
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user