Updated bootstrap to allow for easy git installs
This commit is contained in:
parent
19a5dfbc41
commit
1c6fec2a1f
3 changed files with 66 additions and 33 deletions
|
|
@ -24,6 +24,7 @@ echo "# Gathering applications"
|
|||
declare -x -a applications
|
||||
declare -x -a actions
|
||||
actions=()
|
||||
declare -x -a gitInstalls
|
||||
|
||||
addApplications ()
|
||||
{
|
||||
|
|
@ -43,15 +44,73 @@ addActions()
|
|||
done
|
||||
}
|
||||
|
||||
addGitInstall() {
|
||||
local name=$1
|
||||
local path=$2
|
||||
local setupCommand=$3
|
||||
|
||||
gitInstalls+=("$name;$path;$setupCommand")
|
||||
}
|
||||
|
||||
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[*]}
|
||||
|
||||
checkGitInstallExistance() {
|
||||
local path=$1
|
||||
|
||||
if [ ! -d $path ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
PREV_DIRECTORY=$PWD
|
||||
|
||||
cd $path
|
||||
|
||||
if ! git remote update && git status | grep behind >>/dev/null; then
|
||||
cd $PREV_DIRECTORY
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
runGitInstall() {
|
||||
local targetPath=$1
|
||||
local repository=$2
|
||||
local setupCommand=$3
|
||||
|
||||
PREV_DIRECTORY=$PWD
|
||||
|
||||
if [ ! -d "$targetPath" ]; then
|
||||
git clone "$repository" "$targetPath"
|
||||
fi
|
||||
|
||||
cd $targetPath
|
||||
|
||||
$setupCommand
|
||||
|
||||
cd $PREV_DIRECTORY
|
||||
}
|
||||
|
||||
for gitInstall in "${gitInstalls[@]}"
|
||||
do
|
||||
arrIN=(${gitInstall//;/ })
|
||||
targetPath="$HOME/.cache/${arrIN[0]}"
|
||||
|
||||
if checkGitInstallExistance "$targetPath"; then
|
||||
echo "Installing... ${arrIN[0]}"
|
||||
runGitInstall "$targetPath" "${arrIN[1]}" "${arrIN[2]}"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "# Executing actions... (${#actions[@]})"
|
||||
for action in "${actions[@]}";
|
||||
do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue