about summary refs log tree commit diff stats
path: root/modules/home.legacy/conf/taskwarrior/hooks/scripts/on-add_enforce-policies.sh
blob: eaf7f30cb8144b8e10f6a684427066513f1f7af2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env dash

# shellcheck source=/dev/null
SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH

# override shell lib output to stdout
eprint() {
    # shellcheck disable=SC2317
    print "$@"
}
eprintln() {
    # shellcheck disable=SC2317
    println "$@"
}

enable_hook_dbg() {
    debug_hooks="$(task _get rc.debug.hooks)"
    [ "$debug_hooks" ] && [ "$debug_hooks" -ge 1 ] && dbg_enable
}

enforce_project() {
    project="$(jq '.project' "$(ptmp "$1")")"
    [ "$project" = "null" ] && die "No project supplied!"

    if grep -q "^$(echo "$project" | sed 's|"\(.*\)"|\1|')\$" "$(ptmp "%PROJECTS_NEWLINE")"; then
        dbg "project('$project') is a valid part of %PROJECTS_COMMA"
    else
        die "The project '$(echo "$project" | sed 's|"||g')' is not registered with the nix config, registered projects: %PROJECTS_COMMA"
    fi
}

read -r new_task
# We don't change the task, thus immediately return the json
echo "$new_task"

enable_hook_dbg
enforce_project "$new_task"

exit 0

# vim: ft=sh