about summary refs log tree commit diff stats
path: root/pkgs/by-name/ne/neorg/functions/add.sh
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:26:22 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:26:22 +0200
commit204731c0a69136c9cebcb54f1afecf5145e26bbe (patch)
treefc9132e5dc74e4a8e1327cdd411839a90f9410aa /pkgs/by-name/ne/neorg/functions/add.sh
parentrefactor(sys): Modularize and move to `modules/system` or `pkgs` (diff)
downloadnixos-config-204731c0a69136c9cebcb54f1afecf5145e26bbe.zip
refactor(pkgs): Categorize into `by-name` shards
This might not be the perfect way to organize a package set --
especially if the set is not nearly the size of nixpkgs -- but it is
_at_ least a way of organization.
Diffstat (limited to 'pkgs/by-name/ne/neorg/functions/add.sh')
-rwxr-xr-xpkgs/by-name/ne/neorg/functions/add.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/pkgs/by-name/ne/neorg/functions/add.sh b/pkgs/by-name/ne/neorg/functions/add.sh
new file mode 100755
index 00000000..5a830a10
--- /dev/null
+++ b/pkgs/by-name/ne/neorg/functions/add.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env dash
+
+add0open_taskwarrior_project_file() {
+    task_project_file="%TASK_PROJECT_FILE"
+
+    cd "$(dirname $task_project_file)" || die "BUG: task_project_file ('$task_project_file') can't be accessed"
+
+    git_dir="$(search_flake_base_dir)"
+    [ "$git_dir" ] || die "(BUG): No git directory?"
+    cd "$git_dir" || die "Unreachable, this MUST exists"
+
+    nvim "$task_project_file"
+    git add "$task_project_file"
+
+    base_task_project_file_path="$(awk "{ gsub(\"$git_dir/\", \"\", \$0); print }" "$(ptmp "$task_project_file")")"
+    git add $task_project_file
+
+    # Check that only the project file has been added (and that our file is actually
+    # modified)
+    if git status --porcelain=v2 | awk -v path="$base_task_project_file_path" 'BEGIN { hit = 0 } { if ($2 ~ /A./ || $2 ~ /M./) { if ($NF ~ path) { hit = 1 } else { hit = 0; exit 1 } } } END { if (hit == 1) { exit 0 } else { exit 1 } }'; then
+        git commit --verbose --message="chore($(dirname "$base_task_project_file_path")): Update"
+    fi
+}