aboutsummaryrefslogtreecommitdiffstats
path: root/upgrade.sh
diff options
context:
space:
mode:
Diffstat (limited to 'upgrade.sh')
-rwxr-xr-xupgrade.sh216
1 files changed, 0 insertions, 216 deletions
diff --git a/upgrade.sh b/upgrade.sh
deleted file mode 100755
index 45624c4f..00000000
--- a/upgrade.sh
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/usr/bin/env bash
-# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
-# for Semi-Manual upgrading your system.
-# NOTE: requires rsync
-
-# Set some colors for output messages
-OK="$(tput setaf 2)[OK]$(tput sgr0)"
-ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
-NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
-INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
-WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
-CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
-MAGENTA="$(tput setaf 5)"
-ORANGE="$(tput setaf 214)"
-WARNING="$(tput setaf 1)"
-YELLOW="$(tput setaf 3)"
-GREEN="$(tput setaf 2)"
-BLUE="$(tput setaf 4)"
-SKY_BLUE="$(tput setaf 6)"
-RESET="$(tput sgr0)"
-
-printf "\n%.0s" {1..1}
-echo -e "\e[35m
- ╦╔═┌─┐┌─┐╦ ╔╦╗┌─┐┌┬┐┌─┐
- ╠╩╗│ ││ │║ ║║│ │ │ └─┐ 2025
- ╩ ╩└─┘└─┘╩═╝ ═╩╝└─┘ ┴ └─┘ upgrade.sh
-\e[0m"
-printf "\n%.0s" {1..1}
-
-# On Ubuntu/Debian, warn about required Hyprland version and prompt to continue
-if grep -iqE '^(ID_LIKE|ID)=.*(ubuntu|debian)' /etc/os-release >/dev/null 2>&1; then
- echo "${WARNING} These Dotfiles are only supported on Hyprland 0.51.1 or greater. Do not install on older revisions.${RESET}"
- while true; do
- echo -n "${CAT} Do you want to continue anyway? (y/N): ${RESET}"
- read _continue
- _continue=$(echo "${_continue}" | tr '[:upper:]' '[:lower:]')
- case "${_continue}" in
- y|yes)
- echo "${NOTE} Proceeding on Ubuntu/Debian by user confirmation."
- break
- ;;
- n|no|"")
- printf "\n%.0s" {1..1}
- echo "${INFO} Aborting per user choice. No changes made."
- printf "\n%.0s" {1..1}
- exit 1
- ;;
- *)
- echo "${WARN} Please answer 'y' or 'n'."
- ;;
- esac
- done
-fi
-
-echo "${WARNING}A T T E N T I O N !${RESET}"
-echo "${SKY_BLUE}This script is meant to manually upgrade your KooL Hyprland Dots${RESET}"
-echo "${YELLOW}NOTE that you should edit this script and assign an Directory or Files exclusion${RESET}"
-printf "\n%.0s" {1..1}
-echo "${MAGENTA}If you are not sure what you are doing,ran the ${SKY_BLUE}copy.sh${RESET} ${MAGENTA}instead${RESET}"
-printf "\n%.0s" {1..1}
-read -p "${CAT} - Would you like to proceed (y/n): ${RESET}" proceed
-
-if [ "$proceed" != "y" ]; then
- printf "\n%.0s" {1..1}
- echo "${INFO} Installation aborted. ${SKY_BLUE}No changes in your system.${RESET} ${YELLOW}Goodbye!${RESET}"
- printf "\n%.0s" {1..1}
- exit 1
-fi
-
-# Create Directory for Upgrade Logs
-if [ ! -d Upgrade-Logs ]; then
- mkdir Upgrade-Logs
-fi
-
-LOG="Upgrade-Logs/upgrade-$(date +%d-%H%M%S)_upgrade_dotfiles.log"
-
-# source and target versions
-source_dir="config"
-target_dir="$HOME/.config"
-
-# Specify the update source directories, their corresponding target directories, and their exclusions
-declare -A directories=(
- ["config/hypr/"]="$HOME/.config/hypr/"
- ["config/kitty/"]="$HOME/.config/kitty/"
- ["config/Kvantum/"]="$HOME/.config/Kvantum/"
- ["config/nvim/"]="$HOME/.config/nvim/"
- ["config/qt5ct/"]="$HOME/.config/qt5ct"
- ["config/qt6ct/"]="$HOME/.config/qt6ct/"
- ["config/rofi/"]="$HOME/.config/rofi/"
- ["config/swaync/"]="$HOME/.config/swaync/"
- ["config/waybar/"]="$HOME/.config/waybar/"
- ["config/cava/"]="$HOME/.config/cava/"
- ["config/ags/"]="$HOME/.config/ags/"
- ["config/quickshell/"]="$HOME/.config/quickshell/"
- ["config/fastfetch/"]="$HOME/.config/fastfetch/"
- ["config/wallust/"]="$HOME/.config/wallust/"
- ["config/wlogout/"]="$HOME/.config/wlogout/"
- # Add more directories to compare as needed
-)
-
-# Update the exclusion rules
-declare -A exclusions=(
- ["config/hypr/"]="--exclude=UserConfigs/ --exclude=UserScripts/"
- ["config/waybar/"]="--exclude=config --exclude=style.css"
- ["config/rofi/"]="--exclude=.current_wallpaper"
- ["config/quickshell/"]="--exclude=shell.qml"
- # Add more exclusions as needed
-)
-
-# Function to compare directories
-compare_directories() {
- local source_dir="$1"
- local target_dir="$2"
- local exclusion="${exclusions[$source_dir]}" # Get exclusions for the source directory
-
- # Perform dry-run comparison using rsync with exclusions
- diff=$(rsync -avn --delete "$source_dir" "$target_dir" $exclusion)
- echo "$diff"
-}
-
-# Function to create backup of target directory
-create_backup() {
- local target_dir="$1"
- local backup_suffix="-b4-upgrade"
- local target_base=$(basename "$target_dir")
- local backup_dir="$HOME/.config/${target_base}${backup_suffix}"
-
- if [ -d "$backup_dir" ]; then
- echo "$NOTE Updating existing backup of the $target_dir..."
- rsync -av --delete "$target_dir" "$backup_dir"
- echo "$NOTE $backup_dir Backup updated successfully." 2>&1 | tee -a "$LOG"
- else
- echo "$NOTE Creating backup of the $target_dir..."
- rsync -av --exclude="${backup_suffix}" "$target_dir" "$backup_dir"/
- echo "$NOTE $backup_dir Backup created successfully." 2>&1 | tee -a "$LOG"
- fi
-}
-
-# Check if the version file exists in target directory, if not exit
-target_version_file=$(find "$target_dir/hypr" -name 'v*' | sort -V | tail -n 1)
-if [ -z "$target_version_file" ]; then
- echo "$ERROR Version number not found in ~/.config/hypr/" 2>&1 | tee -a "$LOG"
- echo "$ERROR Upgrade your dots first by running ./copy.sh" 2>&1 | tee -a "$LOG"
- exit 1
-fi
-
-# Get the stored version from the target directory
-stored_version=$(basename "$target_version_file")
-
-# Get the latest version from the source directory
-source_version_file=$(find "$source_dir/hypr" -name 'v*' | sort -V | tail -n 1)
-latest_version=$(basename "$source_version_file")
-
-# Function to compare versions
-version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
-
-# Compare versions
-if version_gt "$latest_version" "$stored_version"; then
- echo "$CAT newer version ($latest_version) is available. Do you want to upgrade? (Y/N)" 2>&1 | tee -a "$LOG"
- read -r answer
- if [[ "$answer" =~ ^[Yy]$ ]]; then
- # Loop through directories for comparison
- for source_directory in "${!directories[@]}"; do
- target_directory="${directories[$source_directory]}"
- echo "$YELLOW Comparing directories: $source_directory and $target_directory" $RESET
- # Compare source and target directories
- comparison=$(compare_directories "$source_directory" "$target_directory")
- if [ -n "$comparison" ]; then
- echo "$NOTE Here are difference of $source_directory and $target_directory:"
- echo "$comparison"
-
- printf "\n%.0s" {1..2}
-
- # Prompt user for action
- echo "$CAT Do you want to copy files and directories from $source_directory to $target_directory? (Y/N)"
- read -r answer
-
- if [[ "$answer" =~ ^[Yy]$ ]]; then
- # Creating backup of the target directory
- create_backup "$target_directory"
-
- printf "\n%.0s" {1..2}
- # Copy differences from source directory to target directory
- rsync -av --delete ${exclusions[$source_directory]} "$source_directory" "$target_directory"
- echo "$NOTE Differences of "$target_directory" copied successfully." 2>&1 | tee -a "$LOG"
- printf "\n%.0s" {1..2}
- else
- echo "$NOTE No changes were made for $target_directory" 2>&1 | tee -a "$LOG"
- fi
- else
- echo "$OK No differences found between $source_directory and $target_directory" 2>&1 | tee -a "$LOG"
- fi
- done
- printf "\n%.0s" {1..2}
- echo "$NOTE Files or directories updated successfully to version $latest_version" 2>&1 | tee -a "$LOG"
-
- # Set some files as executable
- chmod +x "$HOME/.config/hypr/scripts/"* 2>&1 | tee -a "$LOG"
- chmod +x "$HOME/.config/hypr/UserScripts/"* 2>&1 | tee -a "$LOG"
- # Set executable for initial-boot.sh
- chmod +x "$HOME/.config/hypr/initial-boot.sh" 2>&1 | tee -a "$LOG"
-
- else
- echo "$MAGENTA Upgrade declined. No files or directories changed" 2>&1 | tee -a "$LOG"
- fi
-else
- echo "$OK 👌 No upgrade found. The installed version ${MAGENTA}($stored_version)${RESET} is up to date with the KooL Hyprland-Dots version ${YELLOW}($latest_version)${RESET}" 2>&1 | tee -a "$LOG"
-fi
-
-printf "\n%.0s" {1..3}
-echo "$(tput bold)$(tput setaf 3)ATTENTION!!!! VERY IMPORTANT NOTICE!!!! $(tput sgr0)"
-echo "$(tput bold)$(tput setaf 7)If you updated waybar directory, and you have your own waybar layout and styles $(tput sgr0)"
-echo "$(tput bold)$(tput setaf 7)Copy those files from the created backup ~/.config/waybar-b4-upgrade $(tput sgr0)"
-echo "$(tput bold)$(tput setaf 7)Make sure to set your waybar and style before logout or reboot $(tput sgr0)"
-echo "$(tput bold)$(tput setaf 7)SUPER CTRL B for Waybar Styles and SUPER ALT B for Waybar Layout $(tput sgr0)"
-printf "\n%.0s" {1..3}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage