Add --cwd override for relative paths

This commit is contained in:
2026-02-19 16:29:30 +00:00
parent 3c1972d670
commit 24fb9be6fb

23
main.go
View File

@@ -28,17 +28,28 @@ func main() {
os.Exit(1) 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 var err error
switch os.Args[1] { switch args[0] {
case "apply": case "apply":
err = applyCmd() err = applyCmd()
case "add": case "add":
err = addCmd(os.Args[2:]) err = addCmd(args[1:], cwd)
case "help", "-h", "--help": case "help", "-h", "--help":
usage() usage()
return return
default: default:
err = fmt.Errorf("unknown command %q", os.Args[1]) err = fmt.Errorf("unknown command %q", args[0])
} }
if err != nil { if err != nil {
@@ -105,17 +116,15 @@ func applyCmd() error {
return nil return nil
} }
func addCmd(args []string) error { func addCmd(args []string, cwd string) error {
if len(args) < 1 { if len(args) < 1 {
return errors.New("missing path") return errors.New("missing path")
} }
argPath := args[0] argPath := args[0]
if !filepath.IsAbs(argPath) { if !filepath.IsAbs(argPath) && cwd != "" {
if cwd := os.Getenv("SIGIL_CWD"); cwd != "" {
argPath = filepath.Join(cwd, argPath) argPath = filepath.Join(cwd, argPath)
} }
}
absPath, err := filepath.Abs(argPath) absPath, err := filepath.Abs(argPath)
if err != nil { if err != nil {