diff options
| author | ewy <ewy0@protonmail.com> | 2026-06-01 18:47:44 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-06-01 18:47:44 +0200 |
| commit | 46d032cd21b0e8e2c94a32333d3805ec76980cca (patch) | |
| tree | fbb8aed5c5a501aca1309f62a9d4440ca949ce4c /run | |
| parent | 7585a488b7b1e1812f7ebf50107139e2fd65f035 (diff) | |
add man(1) generation
Diffstat (limited to 'run')
| -rw-r--r-- | run/edit.go | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/run/edit.go b/run/edit.go index f4742ff..47d6362 100644 --- a/run/edit.go +++ b/run/edit.go @@ -3,21 +3,33 @@ package run import ( "errors" "github.com/ewy1/pik/model" + "github.com/ewy1/pik/spool" "os" "os/exec" ) var NoEditorError = errors.New("$EDITOR not set") -func Edit(t model.Target, src *model.Source) error { +func Edit(t model.Target, src *model.Source) *spool.ExitCode { editor := os.Getenv("EDITOR") if editor == "" { - return NoEditorError + return &spool.NoEditorFailure } cmd := exec.Command(editor, t.File(src)) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr cmd.Dir = src.Path - return cmd.Run() + err := cmd.Run() + code := 0 + msg := "" + var ex *exec.ExitError + if errors.As(err, &ex) { + code = ex.ExitCode() + msg = ex.String() + } + return &spool.ExitCode{ + Value: code, + Message: msg, + } } |
