Printing padding and moving
This commit is contained in:
parent
0c0d0311a2
commit
169bb2cc22
4 changed files with 166 additions and 113 deletions
3
go.mod
Normal file
3
go.mod
Normal file
|
@ -0,0 +1,3 @@
|
|||
module github.com/exhq/neowofetch
|
||||
|
||||
go 1.19
|
156
main.go
156
main.go
|
@ -3,16 +3,16 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"math/rand"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/exhq/neowofetch/util"
|
||||
)
|
||||
|
||||
var isuwuified bool = true
|
||||
var tempbool bool
|
||||
var arch = ` /\
|
||||
/ \
|
||||
/\ \
|
||||
|
@ -22,119 +22,67 @@ var arch = ` /\
|
|||
/_-'' ''-_\
|
||||
`
|
||||
|
||||
func cprint(input string, newline bool, uwuoverwrite bool) {
|
||||
func getHome() string {
|
||||
return os.Getenv("HOME")
|
||||
}
|
||||
|
||||
endings := [15]string{
|
||||
"owo",
|
||||
"UwU",
|
||||
">w<",
|
||||
"^w^",
|
||||
"●w●",
|
||||
"☆w☆",
|
||||
"𝗨𝘄𝗨",
|
||||
"(´꒳`)",
|
||||
"♥(。U ω U。)",
|
||||
"(˘ε˘)",
|
||||
"( ˘ᴗ˘ )",
|
||||
"(*ฅ́˘ฅ̀*)",
|
||||
"*screams*",
|
||||
"*twearks*",
|
||||
"*sweats*",
|
||||
}
|
||||
ninput := ""
|
||||
if isuwuified && !uwuoverwrite {
|
||||
bruh := strings.Split(input, " ")
|
||||
for _, word := range bruh {
|
||||
if word == "" {
|
||||
continue
|
||||
}
|
||||
word = strings.ReplaceAll(word, "r", "w")
|
||||
word = strings.ReplaceAll(word, "i", "iy")
|
||||
word = strings.ReplaceAll(word, "l", "w")
|
||||
|
||||
if strings.HasSuffix(word, "!") {
|
||||
word = word[0:len(word)-1] + "1!11!1"
|
||||
}
|
||||
if strings.Contains(word, "u") && !strings.Contains(word, "uwu") && !strings.Contains(word, "owo") {
|
||||
word = strings.ReplaceAll(word, "u", "uwu")
|
||||
}
|
||||
|
||||
ninput += word + " "
|
||||
|
||||
}
|
||||
if rand.Intn(5-1)+1 == 2 {
|
||||
ninput += endings[rand.Intn(len(endings))]
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
ninput = input
|
||||
}
|
||||
farch := strings.Split(arch, "\n")
|
||||
check := 0
|
||||
if newline == false {
|
||||
fmt.Print(ninput)
|
||||
} else {
|
||||
fmt.Print(farch[0] + ninput + "\n")
|
||||
check += 1
|
||||
}
|
||||
if check < len(farch) {
|
||||
for check < len(farch) {
|
||||
print(farch[check] + "\n")
|
||||
check += 1
|
||||
}
|
||||
}
|
||||
func getConfigFile() string {
|
||||
return getHome() + "/.config/neowofetch/conf"
|
||||
}
|
||||
|
||||
func handleConfig() {
|
||||
_, folder := os.Stat("/home/" + getUsername() + "/.config/neowofetch")
|
||||
_, file := os.Stat("/home/" + getUsername() + "/.config/neowofetch/conf")
|
||||
_, folder := os.Stat(filepath.Dir(getConfigFile()))
|
||||
_, file := os.Stat(getConfigFile())
|
||||
if os.IsNotExist(folder) {
|
||||
os.Mkdir("/home/"+getUsername()+"/.config/neowofetch", os.ModePerm)
|
||||
os.Mkdir(filepath.Dir(getConfigFile()), os.ModePerm)
|
||||
}
|
||||
|
||||
if os.IsNotExist(file) {
|
||||
println("bruh you aint got tha file? bruh fr fr bruh wtf")
|
||||
f, _ := os.Create("/home/" + getUsername() + "/.config/neowofetch/conf")
|
||||
_, _ = f.WriteString(
|
||||
`test
|
||||
among`)
|
||||
|
||||
f, _ := os.Create(getConfigFile())
|
||||
_, _ = f.WriteString("test\namong")
|
||||
} else {
|
||||
body, _ := ioutil.ReadFile("/home/" + getUsername() + "/.config/neowofetch/conf")
|
||||
body, _ := ioutil.ReadFile(getConfigFile())
|
||||
fbody := strings.Split(string(body), "\n")
|
||||
util.InitUwuPrinter()
|
||||
for _, s := range fbody {
|
||||
w := strings.Split(s, " ")
|
||||
if len(w) == 1 {
|
||||
w := strings.SplitN(s, " ", 2)
|
||||
if len(w) < 2 {
|
||||
continue
|
||||
}
|
||||
declr := w[0]
|
||||
inf := w[1]
|
||||
nouwu := w[len(w)-1]
|
||||
if declr == "nn-prin" {
|
||||
cprint(strings.Join(w[1:], " "), false, nouwu == "nouwu")
|
||||
verb := w[0]
|
||||
argument := w[1]
|
||||
nouwu := false
|
||||
if strings.HasPrefix(argument, "-uwu ") {
|
||||
nouwu = true
|
||||
argument = argument[5:]
|
||||
}
|
||||
if declr == "prin" {
|
||||
cprint(strings.Join(w[1:], " "), true, nouwu == "nouwu")
|
||||
}
|
||||
if declr == "nn-info" || declr == "info" {
|
||||
if declr == "info" {
|
||||
tempbool = true
|
||||
if verb == "print" {
|
||||
util.UwuPrint(argument, nouwu)
|
||||
} else if verb == "println" {
|
||||
util.UwuPrint(argument, nouwu)
|
||||
util.UwuNewline()
|
||||
} else if verb == "info" {
|
||||
PrintInfo(argument, nouwu)
|
||||
} else if verb == "infoln" {
|
||||
PrintInfo(argument, nouwu)
|
||||
util.UwuNewline()
|
||||
} else {
|
||||
tempbool = false
|
||||
}
|
||||
if inf == "username" {
|
||||
cprint(getUsername(), tempbool, nouwu == "nouwu")
|
||||
} else if inf == "hostname" {
|
||||
cprint(getHostname(), tempbool, nouwu == "nouwu")
|
||||
} else if inf == "uptime" {
|
||||
among, _ := strconv.Atoi(getUptime())
|
||||
cprint(formatTime(among), tempbool, true)
|
||||
}
|
||||
fmt.Printf("Unknown verb %s\n", verb)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func PrintInfo(infoType string, noUwuOverride bool) {
|
||||
if infoType == "username" {
|
||||
util.UwuPrint(getUsername(), noUwuOverride)
|
||||
} else if infoType == "hostname" {
|
||||
util.UwuPrint(getHostname(), noUwuOverride)
|
||||
} else if infoType == "uptime" {
|
||||
among, _ := strconv.Atoi(getUptime())
|
||||
util.UwuPrint(formatTime(among), true)
|
||||
}
|
||||
}
|
||||
|
||||
func handleArgs() {
|
||||
|
@ -297,21 +245,5 @@ func getColorPalette() {
|
|||
func main() {
|
||||
handleArgs()
|
||||
handleConfig()
|
||||
ex, err := os.Executable()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
exPath := filepath.Dir(ex)
|
||||
fmt.Println(exPath)
|
||||
|
||||
/*
|
||||
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()
|
||||
*/
|
||||
util.UwuPrintRest()
|
||||
}
|
||||
|
|
5
subdirectory/sub.go
Normal file
5
subdirectory/sub.go
Normal file
|
@ -0,0 +1,5 @@
|
|||
package subdirectory;
|
||||
|
||||
|
||||
func TestFun() {
|
||||
}
|
113
util/printing.go
Normal file
113
util/printing.go
Normal file
|
@ -0,0 +1,113 @@
|
|||
package util
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var uwuEmotes = [15]string{
|
||||
"owo",
|
||||
"UwU",
|
||||
">w<",
|
||||
"^w^",
|
||||
"●w●",
|
||||
"☆w☆",
|
||||
"𝗨𝘄𝗨",
|
||||
"(´꒳`)",
|
||||
"♥(。U ω U。)",
|
||||
"(˘ε˘)",
|
||||
"( ˘ᴗ˘ )",
|
||||
"(*ฅ́˘ฅ̀*)",
|
||||
"*screams*",
|
||||
"*twearks*",
|
||||
"*sweats*",
|
||||
}
|
||||
|
||||
var logoIndex = 0
|
||||
var isInProgressLine = false
|
||||
var logo = ` /\
|
||||
/ \
|
||||
/\ \
|
||||
/ > ω <\
|
||||
/ __ \
|
||||
/ __| |__-\
|
||||
/_-'' ''-_\
|
||||
`
|
||||
var logoLines []string
|
||||
var logoWidth int
|
||||
var shouldUwuify = true
|
||||
|
||||
func InitUwuPrinter() {
|
||||
logoLines = strings.Split(logo, "\n")
|
||||
logoWidth = 0
|
||||
for _, v := range logoLines {
|
||||
lineLength := len([]rune(v))
|
||||
if lineLength > logoWidth {
|
||||
logoWidth = lineLength
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func initLine() {
|
||||
if !isInProgressLine {
|
||||
isInProgressLine = true
|
||||
if logoIndex < len(logoLines) {
|
||||
logoLine := logoLines[logoIndex]
|
||||
logoLineLength := len([]rune(logoLine))
|
||||
padding := strings.Repeat(" ", logoWidth-logoLineLength)
|
||||
fmt.Printf("%s%s", logoLine, padding)
|
||||
logoIndex += 1
|
||||
} else {
|
||||
fmt.Printf("%s", strings.Repeat(" ", logoWidth))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func UwuPrint(message string, noUwuOverride bool) {
|
||||
initLine()
|
||||
if noUwuOverride || !shouldUwuify {
|
||||
fmt.Printf("%s", message)
|
||||
return
|
||||
}
|
||||
words := strings.Split(message, " ")
|
||||
hadAnyContent := false
|
||||
for _, word := range words {
|
||||
if word == "" {
|
||||
fmt.Print(" ")
|
||||
continue
|
||||
}
|
||||
word = strings.ReplaceAll(word, "r", "w")
|
||||
word = strings.ReplaceAll(word, "i", "iy")
|
||||
word = strings.ReplaceAll(word, "iyy", "iy")
|
||||
word = strings.ReplaceAll(word, "l", "w")
|
||||
|
||||
if strings.HasSuffix(word, "!") {
|
||||
word = word[:len(word)-1] + "1!11!1"
|
||||
}
|
||||
|
||||
if strings.Contains(word, "u") &&
|
||||
!strings.Contains(word, "uwu") &&
|
||||
!strings.Contains(word, "owo") {
|
||||
word = strings.ReplaceAll(word, "u", "uwu")
|
||||
}
|
||||
hadAnyContent = true
|
||||
fmt.Printf("%s ", word)
|
||||
}
|
||||
|
||||
if hadAnyContent && rand.Intn(5) == 0 {
|
||||
fmt.Printf("%s", uwuEmotes[rand.Intn(len(uwuEmotes))])
|
||||
}
|
||||
}
|
||||
|
||||
func UwuNewline() {
|
||||
initLine()
|
||||
isInProgressLine = false
|
||||
fmt.Println()
|
||||
}
|
||||
|
||||
func UwuPrintRest() {
|
||||
for logoIndex < len(logoLines) {
|
||||
UwuNewline()
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue