From cee2b5753c37d2668408ae347bc9971a7d14e1c1 Mon Sep 17 00:00:00 2001 From: Lamar Daughma Date: Fri, 28 Jan 2022 11:17:17 +0000 Subject: [PATCH] adding better variable detection --- yadm | 82 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 17 deletions(-) diff --git a/yadm b/yadm index 853ce2e..a7b83c1 100755 --- a/yadm +++ b/yadm @@ -99,7 +99,7 @@ function main() { # parse command line arguments local retval=0 - internal_commands="^(alt|bootstrap|clean|clone|config|decrypt|encrypt|enter|git-crypt|help|--help|init|introspect|list|perms|transcrypt|upgrade|version|verify|--version)$" + internal_commands="^(alt|bootstrap|clean|clone|config|decrypt|encrypt|enter|echo|git-crypt|help|--help|init|introspect|list|perms|transcrypt|upgrade|version|--version)$" if [ -z "$*" ] ; then # no argumnts will result in help() help @@ -110,6 +110,8 @@ function main() { YADM_ARGS=() shift + + # commands listed below do not process any of the parameters if [[ "$YADM_COMMAND" =~ ^(enter|git_crypt)$ ]] ; then YADM_ARGS=("$@") @@ -144,7 +146,11 @@ function main() { [ ! -d "$YADM_WORK" ] && error_out "Work tree does not exist: [$YADM_WORK]" HOOK_COMMAND="$YADM_COMMAND" invoke_hook "pre" - $YADM_COMMAND "${YADM_ARGS[@]}" + if [[ "$YADM_COMMAND" =~ ^(echo)$ ]]; then + yecho "${YADM_ARGS[@]}" + else + $YADM_COMMAND "${YADM_ARGS[@]}" + fi else # any other commands are simply passed through to git HOOK_COMMAND="$1" @@ -1117,6 +1123,7 @@ Commands: yadm enter [COMMAND] - Run sub-shell with GIT variables set yadm git-crypt [OPTIONS] - Run git-crypt commands for the yadm repo yadm transcrypt [OPTIONS] - Run transcrypt commands for the yadm repo + yadm echo [OPTIONS] - View yadm internal commands and file paths Files: \$HOME/.config/yadm/config - yadm's configuration file @@ -1400,8 +1407,7 @@ function version() { } -function verify() { - #verify internal yadm variables +function print_variables(){ local local_class local local_system local local_host @@ -1409,25 +1415,67 @@ function verify() { local local_distro set_local_alt_values - while [[ $# -gt 0 ]] ; do - case "$1" in - -o|--os) - echo "$local_system" + echo "Yadm variables: + distro=$local_distro + system=$local_system + hostname=$local_host + user=$local_user + class=$local_class +" +} + +function print_paths(){ + echo "${2}" + if [[ -z $2 ]] ; then + echo "yadm paths: + repo=$YADM_REPO + yadm_dir=$YADM_DIR + config=$YADM_CONFIG + encrypt=$YADM_ENCRYPT + archive=$YADM_ARCHIVE + " + else + case "$2" in + repo) + echo $YADM_REPO ;; - -d|--distro) - echo "$local_distro" + dir|yadm_dir) + echo $YADM_DIR ;; - -u|--user) - echo "$local_user" + config) + echo $YADM_CONFIG ;; - -h|--host) - echo "$local_host" + encrypt) + echo $YADM_ENCRYPT ;; - -c|--class) - echo "$local_class" + archive) + echo $YADM_ARCHIVE ;; *) - #do nothing. + echo "$2 is not a valid option" + esac + fi + } + +function yecho() { + #verify internal yadm variables + + if [[ $# -eq 0 ]] ; then + print_variables + print_paths + fi + + while [[ $# -gt 0 ]] ; do + echo "$1" + case "$1" in + vars|variables) + print_variables "${YADM_ARGS[@]}" + ;; + paths|path) + print_paths "${YADM_ARGS[@]}" + ;; + *) + echo "$1 is not a valid command" ;; esac shift