diff options
author | Minecodes | 2023-08-05 00:10:23 +0200 |
---|---|---|
committer | Minecodes | 2023-08-05 00:10:23 +0200 |
commit | c9cb6bb12ad32f6c6b7dcc4d3ccd24d2702e00e4 (patch) | |
tree | f90faab3e08f11c4558928101202b4232c9516f4 | |
parent | 2ddec8132f22ab99a6eb03e5afff5cdaa472ad4c (diff) | |
download | aur-c9cb6bb12ad32f6c6b7dcc4d3ccd24d2702e00e4.tar.gz |
fixing installation issues
-rw-r--r-- | PKGBUILD | 1 | ||||
-rw-r--r-- | main.go | 62 |
2 files changed, 62 insertions, 1 deletions
@@ -13,7 +13,6 @@ sha256sums=('SKIP') build() { cd "$srcdir" export GOPATH="$srcdir" - go install go build -o rbcat main.go } diff --git a/main.go b/main.go new file mode 100644 index 000000000000..056036e29067 --- /dev/null +++ b/main.go @@ -0,0 +1,62 @@ +package main + +import ( + "bufio" + "fmt" + "io" + "math" + "math/rand" + "os" +) + +func rgb(i int) (int, int, int) { + var f = 0.1 + return int(math.Sin(f*float64(i)+0)*127 + 128), + int(math.Sin(f*float64(i)+2*math.Pi/3)*127 + 128), + int(math.Sin(f*float64(i)+4*math.Pi/3)*127 + 128) +} + +func main() { + info, _ := os.Stdin.Stat() + args := os.Args[1:] + + if info.Mode()&os.ModeCharDevice != 0 && len(args) != 1 { + fmt.Println("The command is intended to work with pipes or a file.") + fmt.Println("Usage: cat your-file.txt | rbcat") + fmt.Println("Or: rbcat your-file.txt") + os.Exit(1) + } + + if len(args) == 1 { + file, err := os.Open(args[0]) + if err != nil { + fmt.Println(err) + return + } + defer file.Close() + + r := bufio.NewReader(file) + j := rand.Intn(999999) + for { + input, _, err := r.ReadRune() + if err != nil && err == io.EOF { + break + } + r, g, b := rgb(j) + fmt.Printf("\033[38;2;%d;%d;%dm%c\033[0m", r, g, b, input) + j++ + } + } else { + r := bufio.NewReader(os.Stdin) + j := rand.Intn(999999) + for { + input, _, err := r.ReadRune() + if err != nil && err == io.EOF { + break + } + r, g, b := rgb(j) + fmt.Printf("\033[38;2;%d;%d;%dm%c\033[0m", r, g, b, input) + j++ + } + } +} |