34 lines
923 B
Go
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()
|
|
}
|
|
}
|