diff --git a/.config/yadm/bootstrap.v2/applications/30-Hyprdrop.sh b/.config/yadm/bootstrap.v2/applications/30-Hyprdrop.sh index 9f2dd6e..a845619 100755 --- a/.config/yadm/bootstrap.v2/applications/30-Hyprdrop.sh +++ b/.config/yadm/bootstrap.v2/applications/30-Hyprdrop.sh @@ -1,37 +1,7 @@ #!/bin/env sh -HYPRDROP_GIT_PATH="$HOME/.cache/hyprdrop" +addGitInstall "hyprdrop" "https://github.com/kjlo/hyprdrop" setup_hyprdrop -install_hyprdrop() { - PREV_DIRECTORY=$PWD - - if [ ! -d "$HYPRDROP_GIT_PATH" ]; then - git clone https://github.com/kjlo/hyprdrop "$HYPRDROP_GIT_PATH" - fi - - cd ~/.cache/hyprdrop +setup_hyprdrop() { cargo install --path . - - cd $PREV_DIRECTORY } - -check_hyprdrop() { - if [ ! -d "$HOME/.cache/hyprdrop" ]; then - return 0 - fi - - PREV_DIRECTORY=$PWD - - cd $HYPRDROP_GIT_PATH - - if ! git remote update && git status | grep behind >>/dev/null; then - cd $PREV_DIRECTORY - return 0 - fi - - return 1 -} - -if check_hyprdrop; then - addActions install_hyprdrop -fi diff --git a/.config/yadm/bootstrap.v2/applications/99-Reload.sh b/.config/yadm/bootstrap.v2/applications/99-Reload.sh index e350e7f..b52ccf1 100755 --- a/.config/yadm/bootstrap.v2/applications/99-Reload.sh +++ b/.config/yadm/bootstrap.v2/applications/99-Reload.sh @@ -6,4 +6,8 @@ reloadDarkman() { darkman toggle } -addActions reloadDarkman +reloadHyprland() { + hyprctl reload +} + +addActions reloadDarkman reloadHyprland diff --git a/.config/yadm/bootstrap.v2/bootstrap b/.config/yadm/bootstrap.v2/bootstrap index c2ebd61..320c925 100755 --- a/.config/yadm/bootstrap.v2/bootstrap +++ b/.config/yadm/bootstrap.v2/bootstrap @@ -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