about summary refs log tree commit diff stats
path: root/modules/by-name/ts/tskm/taskwarrior_hooks
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/ts/tskm/taskwarrior_hooks')
-rwxr-xr-xmodules/by-name/ts/tskm/taskwarrior_hooks/enforce-projects.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/modules/by-name/ts/tskm/taskwarrior_hooks/enforce-projects.sh b/modules/by-name/ts/tskm/taskwarrior_hooks/enforce-projects.sh
new file mode 100755
index 00000000..c3e377c0
--- /dev/null
+++ b/modules/by-name/ts/tskm/taskwarrior_hooks/enforce-projects.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env sh
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+new_task="$1"
+
+project="$(echo "$new_task" | jq '.project' --raw-output)"
+[ "$project" = "null" ] && die "No project supplied!"
+
+if ! tskm projects list | grep -q "^$project$"; then
+    die "The project '$project' is not (yet) registered, registered projects: $(tskm projects list | tr '\n' ',')"
+fi
+
+# vim: ft=sh