#!/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