58 lines
1.1 KiB
Bash
Executable file
58 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"
|
|
ACTIONS_PATH="$SCRIPTPATH/actions"
|
|
|
|
#$SCRIPTPATH/functions/set_class.sh
|
|
source $SCRIPTPATH/functions/pkg.sh
|
|
source $SCRIPTPATH/functions/filerunner.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[@]})"
|
|
|