package main import ( "bufio" "fmt" "os" "strings" "gosh/cmds" ) func main() { r := bufio.NewReader(os.Stdin) for { d, _ := os.Getwd() fmt.Printf("gosh-0.1:%s$ ", abbr(d)) cmd, err := r.ReadString('\n') if err != nil && err.Error() == "EOF" { fmt.Println() continue } cmd = strings.TrimSuffix(cmd, "\n") err = cmds.Eval(cmd) if err != nil { fmt.Fprintln(os.Stderr, err) } } } func abbr(dir string) string { home, _ := os.UserHomeDir() if dir == home { return "~" } dirs := strings.Split(dir, "/") return dirs[len(dirs)-1] }