summaryrefslogtreecommitdiff
path: root/run
diff options
context:
space:
mode:
authorewy <ewy0@protonmail.com>2026-06-01 18:47:44 +0200
committerewy <ewy0@protonmail.com>2026-06-01 18:47:44 +0200
commit46d032cd21b0e8e2c94a32333d3805ec76980cca (patch)
treefbb8aed5c5a501aca1309f62a9d4440ca949ce4c /run
parent7585a488b7b1e1812f7ebf50107139e2fd65f035 (diff)
add man(1) generation
Diffstat (limited to 'run')
-rw-r--r--run/edit.go18
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,
+ }
}