diff options
author | Soispha <soispha@vhack.eu> | 2024-01-13 12:04:52 +0100 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2024-01-13 12:04:52 +0100 |
commit | 94b2cdc6a17920cfb2bcad6c1172f4d513411daa (patch) | |
tree | 941e651cbd4adffacefed544f12817a333a67b61 /hm/soispha/pkgs/scripts/specific/neorg/sh/main | |
parent | feat(hm/conf/less): Configure the full lesskey file (diff) | |
download | nixos-config-94b2cdc6a17920cfb2bcad6c1172f4d513411daa.tar.gz nixos-config-94b2cdc6a17920cfb2bcad6c1172f4d513411daa.zip |
refactor(hm/pkgs/scrs/specific/neorg/sh): Split the script into sub-scripts
Diffstat (limited to 'hm/soispha/pkgs/scripts/specific/neorg/sh/main')
-rwxr-xr-x | hm/soispha/pkgs/scripts/specific/neorg/sh/main | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/hm/soispha/pkgs/scripts/specific/neorg/sh/main b/hm/soispha/pkgs/scripts/specific/neorg/sh/main new file mode 100755 index 00000000..3e3fc653 --- /dev/null +++ b/hm/soispha/pkgs/scripts/specific/neorg/sh/main @@ -0,0 +1,156 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.0.9" . %SHELL_LIBRARY_PATH + +# load dependencies +. ./functions/add +. ./functions/context +. ./functions/dmenu +. ./functions/f_start +. ./functions/f_stop +. ./functions/list +. ./functions/project +. ./functions/utils +. ./functions/workspace + + +# these are used in version() +# shellcheck disable=2034 +AUTHORS="Soispha" +# shellcheck disable=2034 +YEARS="2023" + +NAME="neorg" + +help() { +cat << EOF +This is the core interface to the system-integrated task management + +USAGE: + $NAME [OPTIONS] [COMMAND] + +OPTIONS: + --help | -h + Display this help and exit. + + --version | -v + Display version and copyright information and exit. +COMMANDS: + task [ID] + Open the neorg context associated with the current context and + the uuid of the task with id ID. Without ID, it'll open the + current context's norg file. + If no context is set, drops you to the selection prompt + + dmenu + Select a project in dmenu mode. This will give you all projects + and exectute the selected one as in 'neorg projects <selected>' + + workspace [WS] + The neorg workspace (WS) to open at startup, an empty value drops + you at a prompt to enter the workspace yourself. + + project [P] + Opens the webbrowser with either the context (P) or + the current active context as argument if no context is supplied + + list + Lists all available contexts + + add + Allows you to quickly add projects + + fstart ID + Starts the task (ID) but only after it stooped + the previous active task, if it existed. + + fstop + Stops the current active task +ARGUMENTS: + ID | *([0-9]) := [[%ID_GENERATION_FUNCTION]] + The function displays all possible IDs of the eligable tasks. + + WS := %ALL_WORKSPACES + All possible workspaces + + P := %ALL_PROJECTS_PIPE + The possible project + +EOF +} + +for arg in "$@"; do + case "$arg" in + "--help" | "-h") + help; + exit 0; + ;; + "--version" | "-v") + version; + exit 0; + ;; + esac +done + +while [ "$#" -ne 0 ]; do + case "$1" in + "t"*) # task + shift 1; + task_id="$1"; + [ "$task_id" ] || utils0chain context0open_current_task_context "exit 0" + context0open_current_task_context_at_task_id "$task_id"; + exit 0; + ;; + "w"*) # workspace + shift 1; + workspace_to_open="$1"; + # TODO: Exit with 1 on error, instead of the 0 <2023-10-20> + [ "$workspace_to_open" ] || utils0chain workspace0open_neorg_workspace_prompt "exit 0"; + workspace0open_neorg_workspace "$workspace_to_open"; + exit 0; + ;; + "p"*) # project + shift 1; + project_to_open="$1"; + # TODO: Exit with 1 on error, instead of the 0 <2023-10-20> + [ "$project_to_open" ] || utils0chain project0open_current_context_in_browser "exit 0"; + if ! grep -q "$project_to_open" "$(ptmp "%ALL_PROJECTS_NEWLINE")"; then + die "Your project ('$project_to_open') is not in the list of available projects: +%ALL_PROJECTS_COMMA"; + fi + project0open_project_in_browser "$project_to_open"; + exit 0; + ;; + "l"*) # list + list0list_all_contexts_newline; + exit 0 + ;; + "a"*) # add-project + add0open_taskwarrior_project_file; + exit 0 + ;; + "d"*) # dmenu + dmenu0open_context_in_browser; + exit 0 + ;; + "fsta"*) # fstart + shift 1; + task_id="$1"; + [ "$task_id" ] || die "No task id provided to fstart"; + fstart0start_new_task "$task_id"; + exit 0 + ;; + "fsto"*) # fstop + fstop0stop_current_task; + exit 0 + ;; + *) + die "Command '$1' does not exist! Please look at:\n $NAME --help"; + exit 0; + ;; + esac +done + +context0open_current_task_context; +# vim: ft=sh |