This commit is contained in:
LiteLotus 2023-01-24 19:29:24 +01:00 committed by GitHub
commit 2e288c011f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 107 additions and 2 deletions

109
yadm
View File

@ -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|--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
@ -144,7 +144,7 @@ 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[@]}"
${YADM_COMMAND/echo/yecho} "${YADM_ARGS[@]}"
else
# any other commands are simply passed through to git
HOOK_COMMAND="$1"
@ -1173,6 +1173,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
@ -1459,6 +1460,110 @@ function version() {
}
function print_variables(){
local local_class
local local_system
local local_host
local local_user
local local_distro
set_local_alt_values
if [[ -z "$2" ]]; then
echo "Yadm variables:
distro=$local_distro
system=$local_system
hostname=$local_host
user=$local_user
class=$local_class
"
else
case "$2" in
class)
echo $local_class
;;
system)
echo $local_system
;;
host)
echo $local_host
;;
user)
echo $local_user
;;
distro)
echo $local_distro
;;
*)
echo "$2 is not a valid option"
esac
fi
}
function print_paths(){
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
;;
dir|yadm_dir)
echo $YADM_DIR
;;
config)
echo $YADM_CONFIG
;;
encrypt)
echo $YADM_ENCRYPT
;;
archive)
echo $YADM_ARCHIVE
;;
*)
echo " in path "
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
case "$1" in
vars|variables)
print_variables "${YADM_ARGS[@]}"
if [[ ! -z "$2" ]] ; then
shift
fi
;;
paths|path)
print_paths "${YADM_ARGS[@]}"
if [[ ! -z "$2" ]] ; then
shift
fi
;;
*)
echo "$1 is not a valid command"
;;
esac
shift
done
}
# ****** Utility Functions ******
function exclude_encrypted() {