60 lines
1.1 KiB
Bash
Executable file
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
|