yadm-config/.config/yadm/bootstrap.v2/bootstrap

60 lines
1.1 KiB
Bash
Executable file

#!/bin/env sh
set -eu
SCRIPTPATH="$(
cd -- "$(dirname "$0")" >/dev/null 2>&1
pwd -P
)"
APPLICATIONS_PATH="$SCRIPTPATH/applications"
$SCRIPTPATH/functions/set_class.sh
source $SCRIPTPATH/functions/pkg.sh
if [[ ! -d "$APPLICATIONS_PATH" ]]; then
echo "Error: applications directory '$APPLICATIONS_PATH' not found" >&2
exit 1
fi
echo -n "# Updating system"
updateSystem
echo "# Gathering applications"
declare -x -a applications
declare -x -a actions
actions=()
addApplications ()
{
for application in "$@"; do
# echo "adding application: $application"
applications+=("$application")
done
}
addActions()
{
for action in "$@"; do
# echo "adding action: $action"
actions+=("$action")
done
}
while IFS= read -r file; do
if [[ -x "$file" && ! "$file" =~ "##" && ! "$file" =~ ~$ && ! "$file" =~ ".bak" ]]; then
source $file
fi
done < <(find -L "$APPLICATIONS_PATH" -type f | sort)
echo -n "# Installing/Updating applications (${#applications[@]})"
installPackages ${applications[*]}
echo "# Executing actions... (${#actions[@]})"
for action in "${actions[@]}";
do
echo "==> Now executing: ${action}"
$action
done