Projects STRLCPY goc2 Commits 6ee51152
🤬
  • ■ ■ ■ ■ ■ ■
    pkg/cli/cli.go
     1 +package cli
     2 + 
     3 +import (
     4 + "bufio"
     5 + "fmt"
     6 + "os"
     7 + "errors"
     8 + "os/exec"
     9 + "strings"
     10 +)
     11 + 
     12 +func main() {
     13 + reader := bufio.NewReader(os.Stdin)
     14 + for {
     15 + path, err := os.Getwd()
     16 + fmt.Print(path + "-agent0012$ ")
     17 + cmdString, err := reader.ReadString('\n')
     18 + if err != nil {
     19 + fmt.Fprintln(os.Stderr, err)
     20 + }
     21 + err = runCommand(cmdString)
     22 + if err != nil {
     23 + fmt.Fprintln(os.Stderr, err)
     24 + }
     25 + }
     26 +}
     27 + 
     28 +func runCommand(commandStr string) error {
     29 + commandStr = strings.TrimSuffix(commandStr, "\n")
     30 + arrCommandStr := strings.Fields(commandStr)
     31 + if len(arrCommandStr) < 1 {
     32 + return errors.New("")
     33 + }
     34 + switch arrCommandStr[0] {
     35 + case "cd":
     36 + if len(arrCommandStr) < 1 {
     37 + return errors.New("Required 1 arguments")
     38 + }
     39 + return os.Chdir(arrCommandStr[1])
     40 + case "exit":
     41 + os.Exit(0)
     42 + case "whos":
     43 + cmd := exec.Command("whoami")
     44 + cmd.Stderr = os.Stderr
     45 + cmd.Stdout = os.Stdout
     46 + //fmt.Fprintln(os.Stdout, output)
     47 + return cmd.Run()
     48 + default:
     49 + cmd := exec.Command(arrCommandStr[0], arrCommandStr[1:]...)
     50 + cmd.Stderr = os.Stderr
     51 + cmd.Stdout = os.Stdout
     52 + return cmd.Run()
     53 + }
     54 + return nil
     55 +}
     56 + 
Please wait...
Page is in error, reload to recover