diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..e658f78 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module ls + +go 1.19 diff --git a/main.go b/main.go new file mode 100644 index 0000000..abe628a --- /dev/null +++ b/main.go @@ -0,0 +1,53 @@ +package main + +import ( + "fmt" + "io/ioutil" + "log" + "os" + "runtime" +) + +func main() { + Module() +} + +func getDirectory() string { + path, err := os.Getwd() + if err != nil { + fmt.Println(err) + } + return path +} + +func listDir() { + files, err := ioutil.ReadDir(getDirectory()) + if err != nil { + fmt.Println(err) + } + for _, f := range files { + colorRed := "\033[31m" + colorReset := "\033[0m" + + fmt.Println(string(colorRed), f.Name()) + fmt.Println(string(colorReset)) + } +} + +func Module() { + switch os := runtime.GOOS; os { + case "darwin": + fmt.Println("OS X.") + listDir() + case "linux": + fmt.Println("Linux.") + listDir() + case "windows": + log.Fatal("\nWindows is currently not supported") + default: + // freebsd, openbsd, + // plan9... + fmt.Printf("%s.\n", os) + listDir() + } +}