diff --git a/autoinstall/bashly.yml b/autoinstall/bashly.yml index dfdcba5..526b258 100644 --- a/autoinstall/bashly.yml +++ b/autoinstall/bashly.yml @@ -30,6 +30,12 @@ commands: - name: group required: true help: The group to install + flags: + - long: --file + short: -f + help: File from which to read autoinstall-config + arg: file + default: $XDG_CONFIG_HOME/autoinstall.toml - name: git help: Install a git repository diff --git a/autoinstall/before.sh b/autoinstall/before.sh index f88899b..b5da850 100644 --- a/autoinstall/before.sh +++ b/autoinstall/before.sh @@ -19,5 +19,12 @@ fi if [ -n "$clean" ] || [ -n "${AUTOINSTALL_CLEAN:-}" ] then echo "Cleaning $target" + + # sanity checks + if [ -z "$target" ] || [ "$target" = "/" ] || [ "$target" = "$HOME" ] || [ "$target" = "$HOME/" ] + then + echo "Invalid target: '$target'" + exit 1 + fi rm -rf "$target" fi diff --git a/autoinstall/run_command.sh b/autoinstall/run_command.sh index 0bbc760..968d4b1 100644 --- a/autoinstall/run_command.sh +++ b/autoinstall/run_command.sh @@ -1,12 +1,13 @@ #!/usr/bin/env bash group=${args[group]:?} +file=${args[--file]:-} clean=${args[--clean]:-} _config_query() { tomlq -c --arg group "$group" \ '.autoinstall | map(select(.groups + ["all"] | contains([$group]))) | '"$1" \ - "$XDG_CONFIG_HOME/autoinstall.toml" + "$file" } _config_query ".[]" | while read -r entry; do @@ -43,5 +44,5 @@ _config_query ".[]" | while read -r entry; do install_args+=("$(eval "echo $target")") - autoinstall "${install_args[@]}" + "$0" "${install_args[@]}" done diff --git a/run.sh b/run.sh index 67177b3..7cb49dc 100755 --- a/run.sh +++ b/run.sh @@ -6,4 +6,6 @@ target=$(cat .target) make generate +printf "\nBuild complete. Running...\n==========================\n\n" + "./output/$target" "$@"