34 lines
936 B
Go
34 lines
936 B
Go
package ls
|
|
|
|
import (
|
|
"bbash/environment"
|
|
"bbash/input_parser"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
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, flags string) {
|
|
if flags == "help" || 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] == '.') && (strings.Contains(flags, "a")) {
|
|
continue
|
|
} // allows for hidden directories
|
|
fmt.Print(f.Name())
|
|
fmt.Println()
|
|
}
|
|
}
|