neowofetch/main.go
2022-09-07 17:39:50 +04:30

115 lines
2.6 KiB
Go

package main
import (
"fmt"
"strings"
"os"
"os/exec"
"cpu"
)
func getLogo() {
}
func getDistro() string{
distro, err := os.Open("/etc/os-release")
if err != nil {
fmt.Println("Error:", err)
os.Exit(0)
}
distro_info := make([]byte, 1024)
distro.Read(distro_info)
distro.Close()
distro_list := strings.Split(string(distro_info), "\n")
distro_tuples := make(map[string]string)
for _, v := range distro_list {
if strings.Contains(v, "=") {
kv := strings.Split(v, "=")
kv[0] = strings.TrimSpace(kv[0])
kv[1] = strings.TrimSpace(kv[1])
distro_tuples[kv[0]] = kv[1]
}
}
return strings.Trim(distro_tuples["PRETTY_NAME"], "\"")
}
func getHost() {
}
func getKernel() string {
cmd := exec.Command("uname","-r")
kernel, err := cmd.Output()
if err != nil {
fmt.Println(err.Error())
return
}
return string(kernel)
}
func getUptime() {
}
func getPackages() {
}
func getShell() string {
cmd := exec.Command("echo","$SHELL")
shell, err := cmd.Output()
if err != nil {
fmt.Println(err.Error())
return
}
return string(shell)
}
func getResolution() {
}
func getWM() {
}
func getTheme() {
}
func getIcons() {
}
func getTerminal() {
}
func getCPU() {
}
func getGPU() {
}
func getMemory() {
//
// The coolest part about this function unlike neofetch is that it also takes account of the basic os operations
// into account thus not giving an illusion that your os is completely having fun
// honestly idk lmao
//
mem, err := os.Open("/proc/meminfo")
if err != nil {
fmt.Println(err.Error())
os.Exit(0)
}
mem_info := make([]byte, 1024)
mem.Read(mem_info)
mem.Close()
mem_list := strings.Split(string(mem_info),"\n");
mem_map := make(map[string]string)
for _,v := range mem_list {
if strings.Contains(v,":") {
kv := strings.Split(v,":")
kv[0] = strings.TrimSpace(kv[0])
kv[1] = strings.TrimSpace(kv[1])
kv[1] = strings.Replace(kv[1],"kB","",3)
kv[1] = strings.TrimSpace(kv[1])
mem_map[kv[0]] = kv[1]
}
}
mem_free,_ := strconv.Atoi(mem_map["MemFree"])
mem_total,_ := strconv.Atoi(mem_map["MemTotal"])
mem_used := mem_total-mem_free
memory := fmt.Sprintf("%d/%d", mem_used/1024, mem_total/1024)
return memory
}
func getColorPalette() {
}
func main() {
}