aboutsummaryrefslogtreecommitdiff
path: root/cmd.ha
diff options
context:
space:
mode:
authorJulian Hurst <ark@mansus.space>2024-11-15 01:32:41 +0100
committerJulian Hurst <ark@mansus.space>2024-11-15 01:47:29 +0100
commit373ed8172d62b84df70fee9c7f92658e203bb621 (patch)
treef073bc554d99c0859e9cad8f8e6870c6bc615cc3 /cmd.ha
parent86ef1210a686bce0db3ead2760bf4d401e23883a (diff)
downloadhatask-373ed8172d62b84df70fee9c7f92658e203bb621.tar.gz
Add -a flag to add a task
Diffstat (limited to 'cmd.ha')
-rw-r--r--cmd.ha16
1 files changed, 16 insertions, 0 deletions
diff --git a/cmd.ha b/cmd.ha
index 4c85b0a..d22c70c 100644
--- a/cmd.ha
+++ b/cmd.ha
@@ -32,6 +32,10 @@ const commands: [_]command = [
func = &show,
},
command {
+ names = ["a", "add"],
+ func = &add,
+ },
+ command {
names = ["w", "write"],
func = &write,
},
@@ -55,6 +59,18 @@ fn execcommand(cfg: config, name: str, tasks: []task, args: arguments) (void | e
};
};
+fn add(cfg: config, tasks: []task, a: arguments) (void | task | error) = {
+ const args = a.args;
+ if (len(args) != 1z) {
+ getopt::printhelp(os::stderr, "write", a.help)?;
+ return;
+ };
+
+ let buf = path::init(cfg.tasksdir, args[0])?;
+ const c = exec::cmd("vim", path::string(&buf))?;
+ exec::exec(&c);
+};
+
fn write(cfg: config, tasks: []task, a: arguments) (void | task | error) = {
const args = a.args;
if (len(args) != 1z) {