provide-module local-kakrc %— declare-option str local_kakrc_trusted %exp{%val{config}/local_kakrc_trusted.txt} # ensures that the file exists define-command -hidden local-kakrc-ensure-file %{ nop %sh{ if [ ! -f "$kak_opt_local_kakrc_trusted" ]; then mkdir -p "$kak_opt_local_kakrc_trusted" touch "$kak_opt_local_kakrc_trusted" fi } } define-command local-kakrc-load-if-trusted %{ # first we check if the .kakrc exists evaluate-commands %sh{ if [ -f .kakrc ]; then notify-send "Found it!" # check if it's a trusted dir if grep -q "$PWD" "$kak_opt_local_kakrc_trusted"; then echo "source .kakrc" else echo "info -title 'local-kakrc' 'Local .kakrc found, but directory is untrusted.'" fi fi } } define-command -params 0..1 local-kakrc-add-trusted %{ nop %sh{ if [ "$#" -eq 0 ]; then arg="$PWD" else arg="$(realpath "$1")" fi echo "local-kakrc-ensure-file">"$kak_command_fifo" printf '%s\n' "$arg">"$kak_opt_local_kakrc_trusted" } } define-command -params 0..1 local-kakrc-rm-trusted %{ evaluate-commands %sh{ if [ "$#" -eq 0 ]; then arg="$PWD" else arg="$(realpath "$1")" fi if [ ! -f "$kak_opt_local_kakrc_trusted" ]; then echo "fail local_kakrc_trusted not found!" exit 1 fi printf '%s\n' "$arg">"$kak_opt_local_kakrc_trusted" } } complete-command local-kakrc-add-trusted shell-script-candidates %{ fd -td --exclude '.git' --base-directory "$PWD" . } # syntax highlighting hook global BufCreate (.*/)?\.kakrc %{ set-option buffer filetype kak } # load proj. config define-command root-load-kakrc %{ try %{ source %exp{%opt{root_path}/.kakrc} } } —