#!/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"
}