From 0e24383d706a91bc9536b1c0827e4209679ce009 Mon Sep 17 00:00:00 2001 From: Jonas Gunz Date: Sun, 26 Mar 2023 11:24:31 +0200 Subject: install: some reafactoring --- install.sh | 23 +++++++---------------- lib/funcs.sh | 14 ++++++++++++++ lib/hooks.sh | 13 ++++++++----- 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/install.sh b/install.sh index e0dbff0..75f4c3c 100755 --- a/install.sh +++ b/install.sh @@ -9,8 +9,6 @@ function fail(){ WORKDIR=$(realpath "$(dirname "$0")") cd "$WORKDIR" || fail 1 "The working directory could not be determined." -echo "Working in $WORKDIR" -echo "Homedir is $HOME" # For hooks export WORKDIR @@ -21,6 +19,9 @@ for f in lib/*.sh; do source "$f" || fail 1 "Failed to load $f" done +debug "Working in $WORKDIR" +debug "Homedir is $HOME" + if [ ! -f "config.csv" ] || [ ! -f "sets.csv" ]; then # TODO Create them fail 1 "Configuration files do not exist" @@ -41,17 +42,7 @@ done < sets.csv unset SET PKGS if [ $# -eq 0 ]; then - cat << EOF -USAGE: $0 COMMAND [ARGS] -COMMANDS - install [CONFIG ...] - install configurations. if none are provided, - a selection menu is showm. - add PATH - Add PATH to managed configs - hook HOOK - manually call a hook -EOF + print_help "$0" exit 1 fi @@ -84,10 +75,10 @@ case $CMD in cp -r "$1" ./ || fail 1 "Failed to copy configuration" echo "$NAME;$RELPATH" >> config.csv - # This would need a reload - #choose_target "$NAME" - echo "Config was isntalled successfully." + call_hook post_add "$NAME" "$TARGET" + + echo "Config was installed successfully." echo "It can now be installed with $0 install $NAME" echo "The following files were changed: config.csv $NAME" ;; diff --git a/lib/funcs.sh b/lib/funcs.sh index 585c4aa..66786a0 100644 --- a/lib/funcs.sh +++ b/lib/funcs.sh @@ -114,3 +114,17 @@ debug() { warning() { echo "[WARNING] $@" } + +print_help() { + cat << EOF +USAGE: $1 COMMAND [ARGS] +COMMANDS + install [CONFIG ...] + install configurations. if none are provided, + a selection menu is showm. + add PATH + Add PATH to managed configs + hook HOOK + manually call a hook +EOF +} diff --git a/lib/hooks.sh b/lib/hooks.sh index 8d5fc1d..2256914 100644 --- a/lib/hooks.sh +++ b/lib/hooks.sh @@ -2,17 +2,20 @@ # 1: Name of hook call_hook() { - if [ ! -x "hooks/$1.hook" ]; then - debug "$1.hook was not found. Skipping." + local HOOK="$1" + shift + + if [ ! -x "hooks/$HOOK.hook" ]; then + debug "$HOOK.hook was not found. Skipping." return fi - debug "Running hook $1" + debug "Running hook $HOOK" - hooks/$1.hook 2>&1 | (while read line; do echo [hook: $1] $line; done) + hooks/$HOOK.hook 2>&1 | (while read line; do echo [hook: $HOOK] $line; done) RET=${PIPESTATUS[0]} if [ $RET -ne 0 ]; then - warning "Hook $1 exitet with code $RET" + warning "Hook $HOOK exitet with code $RET" fi } -- cgit v1.2.3