summaryrefslogtreecommitdiff
path: root/run/edit.go
diff options
context:
space:
mode:
Diffstat (limited to 'run/edit.go')
-rw-r--r--run/edit.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/run/edit.go b/run/edit.go
new file mode 100644
index 0000000..ad7645c
--- /dev/null
+++ b/run/edit.go
@@ -0,0 +1,23 @@
+package run
+
+import (
+ "errors"
+ "os"
+ "os/exec"
+ "pik/model"
+)
+
+var NoEditorError = errors.New("$EDITOR not set")
+
+func Edit(t model.Target, src *model.Source) error {
+ editor := os.Getenv("EDITOR")
+ if editor == "" {
+ return NoEditorError
+ }
+ 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()
+}