neowofetch/main.go

89 lines
2.4 KiB
Go
Raw Normal View History

2022-09-07 15:09:50 +02:00
package main
import (
2022-09-09 10:45:27 +02:00
"io/ioutil"
2022-09-07 17:28:27 +02:00
"os"
2022-09-09 21:41:50 +02:00
"path/filepath"
2022-09-07 17:28:27 +02:00
"strconv"
"strings"
2022-09-09 22:24:04 +02:00
2022-09-22 14:44:27 +02:00
"github.com/exhq/neowofetch/data"
2022-09-22 14:05:20 +02:00
"github.com/exhq/neowofetch/utils"
2022-09-07 15:09:50 +02:00
)
2022-09-08 17:57:10 +02:00
var isuwuified bool = true
2022-09-09 10:45:27 +02:00
func handleConfig() {
2022-09-26 10:23:44 +02:00
_, folder := os.Stat(filepath.Dir(data.GetConfigFile()))
_, file := os.Stat(data.GetConfigFile())
2022-09-09 10:45:27 +02:00
if os.IsNotExist(folder) {
2022-09-26 10:23:44 +02:00
os.Mkdir(filepath.Dir(data.GetConfigFile()), os.ModePerm)
2022-09-09 10:45:27 +02:00
}
if os.IsNotExist(file) {
println("config was not found. a default config file has been generated in '~/.config/neowofetch/conf'")
2022-09-26 10:23:44 +02:00
f, _ := os.Create(data.GetConfigFile())
_, _ = f.WriteString("println green neOwOfetch 🔥\ninfo magenta username\nprint blue @\ninfoln blue hostname\nprint white uptime: \ninfoln red uptime\nprint white shell: \ninfoln blue shell\nprint white distro: \ninfoln blue distro\nprint white terminal: \ninfoln blue terminal\nprint white memory: \ninfo blue memoryUsed\nprint white /\ninfoln blue memoryAll")
2022-09-09 10:45:27 +02:00
} else {
2022-09-26 10:23:44 +02:00
body, _ := ioutil.ReadFile(data.GetConfigFile())
sbody := (string(body))
fbody := strings.Split(sbody, "\n")
for _, line := range fbody {
word := strings.Split(line, " ")
if len(word) < 3 {
2022-09-09 10:45:27 +02:00
continue
}
action := word[0]
color := word[1]
rest := strings.Join(word[2:], " ")
handlePrint(action, color, rest)
}
}
}
2022-09-22 14:05:20 +02:00
func handlePrint(action, format string, rest string) {
if action == "print" {
2022-09-22 14:05:20 +02:00
utils.CutePrint(rest, format)
} else if action == "println" {
2022-09-22 14:05:20 +02:00
utils.CutePrint(rest, format)
utils.CuteNewLine()
} else if action == "info" || action == "infoln" {
switch rest {
case "distro":
2022-09-22 14:44:27 +02:00
utils.CutePrint(data.GetDistro(), format)
case "username":
2022-09-26 10:23:44 +02:00
utils.CutePrint(data.GetUsername(), format)
case "uptime":
2022-09-26 10:23:44 +02:00
no, _ := strconv.Atoi(data.GetUptime())
utils.CutePrint(data.FormatTime(no), format)
case "hostname":
2022-09-26 10:23:44 +02:00
utils.CutePrint(data.GetHostname(), format)
case "GPU":
2022-09-26 10:23:44 +02:00
utils.CutePrint(data.GetGPU(), format)
case "shell":
2022-09-26 10:23:44 +02:00
utils.CutePrint(data.GetShell(), format)
case "terminal":
2022-09-26 10:23:44 +02:00
utils.CutePrint(data.GetTerminal(), format)
case "memoryAll":
2022-09-26 10:23:44 +02:00
utils.CutePrint(data.GetMemory(false), format)
case "memoryUsed":
2022-09-26 10:23:44 +02:00
utils.CutePrint(data.GetMemory(true), format)
default:
print("{UNKNOWN KEYWORD}")
2022-09-09 10:45:27 +02:00
}
2022-09-22 14:05:20 +02:00
if action == "infoln" {
utils.CuteNewLine()
}
}
2022-09-09 22:24:04 +02:00
}
2022-09-09 10:45:27 +02:00
2022-09-07 15:09:50 +02:00
func main() {
2022-09-22 12:48:20 +02:00
utils.Initargs()
utils.Initcolor()
2022-09-22 14:44:27 +02:00
utils.CutePrintInit()
2022-09-09 10:45:27 +02:00
handleConfig()
2022-09-22 14:05:20 +02:00
utils.CutePrintEnd()
2022-09-07 15:09:50 +02:00
}