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-18 16:20:27 +02:00
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 ) {
2022-09-10 08:31:27 +02:00
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 ( ) )
2022-09-22 09:54:22 +02:00
_ , _ = 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 ( ) )
2022-09-18 16:20:27 +02:00
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
}
2022-09-18 16:20:27 +02:00
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 ) {
2022-09-18 16:20:27 +02:00
if action == "print" {
2022-09-22 14:05:20 +02:00
utils . CutePrint ( rest , format )
2022-09-18 16:20:27 +02:00
} else if action == "println" {
2022-09-22 14:05:20 +02:00
utils . CutePrint ( rest , format )
utils . CuteNewLine ( )
2022-09-18 16:20:27 +02:00
} else if action == "info" || action == "infoln" {
switch rest {
case "distro" :
2022-09-22 14:44:27 +02:00
utils . CutePrint ( data . GetDistro ( ) , format )
2022-09-18 16:20:27 +02:00
case "username" :
2022-09-26 10:23:44 +02:00
utils . CutePrint ( data . GetUsername ( ) , format )
2022-09-18 16:20:27 +02:00
case "uptime" :
2022-09-26 10:23:44 +02:00
no , _ := strconv . Atoi ( data . GetUptime ( ) )
utils . CutePrint ( data . FormatTime ( no ) , format )
2022-09-18 16:20:27 +02:00
case "hostname" :
2022-09-26 10:23:44 +02:00
utils . CutePrint ( data . GetHostname ( ) , format )
2022-09-21 13:17:42 +02:00
case "GPU" :
2022-09-26 10:23:44 +02:00
utils . CutePrint ( data . GetGPU ( ) , format )
2022-09-21 13:17:42 +02:00
case "shell" :
2022-09-26 10:23:44 +02:00
utils . CutePrint ( data . GetShell ( ) , format )
2022-09-22 09:12:47 +02:00
case "terminal" :
2022-09-26 10:23:44 +02:00
utils . CutePrint ( data . GetTerminal ( ) , format )
2022-09-22 09:12:47 +02:00
case "memoryAll" :
2022-09-26 10:23:44 +02:00
utils . CutePrint ( data . GetMemory ( false ) , format )
2022-09-22 09:12:47 +02:00
case "memoryUsed" :
2022-09-26 10:23:44 +02:00
utils . CutePrint ( data . GetMemory ( true ) , format )
2022-09-22 09:12:47 +02:00
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-18 16:20:27 +02:00
}
}
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 ( )
2022-09-23 11:03:50 +02:00
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
}