about summary refs log tree commit diff stats
path: root/pkgs/by-name/ne/neorg/functions/utils.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/utils.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/utils.sh')
-rwxr-xr-xpkgs/by-name/ne/neorg/functions/utils.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/by-name/ne/neorg/functions/utils.sh b/pkgs/by-name/ne/neorg/functions/utils.sh
new file mode 100755
index 00000000..c3843e8e
--- /dev/null
+++ b/pkgs/by-name/ne/neorg/functions/utils.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env dash
+
+# Runs it's first argument and then the second, regardless if the first failed or
+# succeeded
+utils0chain() {
+    eval "$1"
+    eval "$2"
+}
+
+utils0get_current_context() {
+    current_context="$(task _get rc.context)"
+    printf "%s\n" "$current_context"
+}
+
+utils0get_current_context_path() {
+    current_context="$1"
+    context_path="$(task _get rc.context."$current_context".rc.neorg_path 2>/dev/null)"
+    if ! [ "$context_path" ]; then
+        context_path="$(grep "context.$current_context.rc.neorg_path" "%HOME_TASKRC" | awk 'BEGIN {FS="="} {print $2}')"
+        [ "$context_path" ] || die "All contexts should have a 'neorg_path' set!"
+    fi
+    printf "%s\n" "$context_path"
+}
+
+utils0get_neorg_project_dir() {
+    # Perform shell expansion of Tilde
+    neorg_project_dir="$(sed "s|^~|$HOME|" "$(ptmp "%DEFAULT_NEORG_PROJECT_DIR")")"
+    printf "%s\n" "$neorg_project_dir"
+}
+
+utils0project2context() {
+    project="$1"
+    context="$(sed 's|\.|_|g' "$(ptmp "$project")")"
+    printf "%s\n" "$context"
+}
+utils0context2project() {
+    context="$1"
+    project="$(sed 's|_|\.|g' "$(ptmp "$context")")"
+    printf "%s\n" "$project"
+}