bbash/command/ls/ls.go
2025-01-12 09:08:28 +01:00

34 lines
923 B
Go

package ls
import (
"bbash/environment"
"bbash/input_parser"
"fmt"
"os"
"slices"
)
var flagsArray []string = []string{"a ", "help "}
var flagsDictionary map[string]string = map[string]string{"a": "-a shows hidden directories", "help": "-help shows this message"}
func Ls(in input_parser.Input, env *environment.Env) {
if slices.Contains(in.Flags, "help") {
fmt.Printf("Lists Sources in the current working directory")
fmt.Printf("Supported flags are:")
for i := 0; i < len(flagsArray); i++ {
fmt.Println(flagsArray[i] + flagsDictionary[flagsArray[i]])
} // this prints all flags and their description
}
fs, err := os.ReadDir(env.Path)
if err != nil {
fmt.Print(fmt.Sprintf("Error opening directory %s", env.Path))
}
for _, f := range fs {
if (f.Name()[0] == '.') && !(slices.Contains(in.Flags, "a")) {
continue
} // allows for hidden directories
fmt.Print(f.Name())
fmt.Println()
}
}