diff --git a/main.go b/main.go index cf0f9f5..d3f9904 100644 --- a/main.go +++ b/main.go @@ -28,17 +28,28 @@ func main() { os.Exit(1) } + args := os.Args[1:] + cwd := "" + if len(args) >= 2 && args[0] == "--cwd" { + cwd = args[1] + args = args[2:] + if len(args) == 0 { + usage() + os.Exit(1) + } + } + var err error - switch os.Args[1] { + switch args[0] { case "apply": err = applyCmd() case "add": - err = addCmd(os.Args[2:]) + err = addCmd(args[1:], cwd) case "help", "-h", "--help": usage() return default: - err = fmt.Errorf("unknown command %q", os.Args[1]) + err = fmt.Errorf("unknown command %q", args[0]) } if err != nil { @@ -105,16 +116,14 @@ func applyCmd() error { return nil } -func addCmd(args []string) error { +func addCmd(args []string, cwd string) error { if len(args) < 1 { return errors.New("missing path") } argPath := args[0] - if !filepath.IsAbs(argPath) { - if cwd := os.Getenv("SIGIL_CWD"); cwd != "" { - argPath = filepath.Join(cwd, argPath) - } + if !filepath.IsAbs(argPath) && cwd != "" { + argPath = filepath.Join(cwd, argPath) } absPath, err := filepath.Abs(argPath)