From b7e666dcb3f490b3ea9e8dd14468e3c32905a2c8 Mon Sep 17 00:00:00 2001 From: Alex Leferry 2 Date: Wed, 26 Aug 2020 03:43:05 +0200 Subject: Add a connect_paths option --- rc/connect.kak | 45 +++++++++++++++++++++++++++++++++++++++------ rc/env/overrides.env | 6 +----- 2 files changed, 40 insertions(+), 11 deletions(-) (limited to 'rc') diff --git a/rc/connect.kak b/rc/connect.kak index 0f73e21..3148bd9 100644 --- a/rc/connect.kak +++ b/rc/connect.kak @@ -8,14 +8,43 @@ provide-module connect %{ # Options declare-option str connect_environment + # Connect paths + declare-option str-list connect_paths + + # Internal variable to mirror the connect paths as PATH. + declare-option -hidden str connect_environment_paths + + # Watch the connect_paths option + hook -group connect-watch-connect-paths global WinSetOption 'connect_paths=.*' %{ + evaluate-commands %sh{ + # Prelude + . "$kak_opt_prelude_path" + + eval "set -- $kak_quoted_opt_connect_paths" + + # Iterate paths + paths='' + for path do + paths=$paths:$path + done + + # Update the option + kak_escape set-option global connect_environment_paths "$paths" + } + } + + # Initialize the option with the user config paths + declare-option str-list connect_paths "%val{config}/connect/aliases" "%val{config}/connect/commands" + # Commands define-command connect-terminal -params .. -shell-completion -docstring 'Open a new terminal' %{ terminal sh -c %{ kak_opt_prelude_path=$1 kak_opt_connect_path=$2 kak_opt_connect_environment=$3 - kak_session=$4 - kak_client=$5 + kak_opt_connect_environment_paths=$4 + kak_session=$5 + kak_client=$6 . "$kak_opt_connect_path/env/default.env" . "$kak_opt_connect_path/env/overrides.env" @@ -24,13 +53,14 @@ provide-module connect %{ eval "$kak_opt_connect_environment" - shift 5 + shift 6 [ "$1" ] && "$@" || "$SHELL" } -- \ %opt{prelude_path} \ %opt{connect_path} \ %opt{connect_environment} \ + %opt{connect_environment_paths} \ %val{session} \ %val{client} \ %arg{@} @@ -41,6 +71,7 @@ provide-module connect %{ # kak_opt_prelude_path # kak_opt_connect_path # kak_opt_connect_environment + # kak_opt_connect_environment_paths # kak_session # kak_client @@ -62,8 +93,9 @@ provide-module connect %{ kak_opt_prelude_path=$1 kak_opt_connect_path=$2 kak_opt_connect_environment=$3 - kak_session=$4 - kak_server_working_directory=$5 + kak_opt_connect_environment_paths=$4 + kak_session=$5 + kak_server_working_directory=$6 . "$kak_opt_connect_path/env/default.env" . "$kak_opt_connect_path/env/overrides.env" @@ -72,7 +104,7 @@ provide-module connect %{ eval "$kak_opt_connect_environment" - shift 5 + shift 6 cd "$kak_server_working_directory" @@ -81,6 +113,7 @@ provide-module connect %{ %opt{prelude_path} \ %opt{connect_path} \ %opt{connect_environment} \ + %opt{connect_environment_paths} \ %val{session} \ %sh{pwd} \ %arg{@} diff --git a/rc/env/overrides.env b/rc/env/overrides.env index 1404d02..eef38e5 100644 --- a/rc/env/overrides.env +++ b/rc/env/overrides.env @@ -1,10 +1,6 @@ # Connect paths paths=$kak_opt_connect_path/paths -PATH=$paths/aliases:$paths/commands:$PATH:$paths/tools - -# User config paths -paths=$XDG_CONFIG_HOME/kak/connect -PATH=$paths/aliases:$paths/commands:$PATH +PATH=$kak_opt_connect_environment_paths:$paths/aliases:$paths/commands:$PATH:$paths/tools VISUAL=:edit EDITOR=:edit -- cgit v1.2.3