From 74c65605c60ffaf85dcdb73384f8636dbcd07794 Mon Sep 17 00:00:00 2001 From: "Ja.KooLit" Date: Tue, 11 Jun 2024 04:14:53 +0900 Subject: [PATCH] updated for dotfiles v2.2.14 --- install-scripts/dotfiles.sh | 87 +++++++++++-------------------------- 1 file changed, 26 insertions(+), 61 deletions(-) diff --git a/install-scripts/dotfiles.sh b/install-scripts/dotfiles.sh index bf492fb..e471084 100755 --- a/install-scripts/dotfiles.sh +++ b/install-scripts/dotfiles.sh @@ -1,86 +1,51 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # -# Hyprland-Dots to download from Releases # -if [[ $USE_PRESET = [Yy] ]]; then - source ./preset.sh -fi +# Hyprland-Dots to download a specific release # + +# Define the specific release version to download +specific_version="v2.2.14" ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" -printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n" +printf "${NOTE} Downloading / Checking for existing Hyprland-Dots-${specific_version}.tar.gz...\n" -# Check if Hyprland-Dots.tar.gz exists -if [ -f Hyprland-Dots.tar.gz ]; then - printf "${NOTE} Hyprland-Dots.tar.gz found.\n" - - # Get the version from the existing tarball filename - existing_version=$(echo Hyprland-Dots.tar.gz | grep -oP 'v\d+\.\d+\.\d+' | sed 's/v//') - - # Fetch the tag_name for the latest release using the GitHub API - latest_version=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4 | sed 's/v//') - - # Check if versions match - if [ "$existing_version" = "$latest_version" ]; then - echo -e "${OK} Hyprland-Dots.tar.gz is up-to-date with the latest release ($latest_version)." - - # Sleep for 10 seconds before exiting - printf "${NOTE} No update found. Sleeping for 10 seconds...\n" - sleep 10 - exit 0 - else - echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)." - if [[ -z $upgrade_choice ]]; then - read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice - fi - if [ "$upgrade_choice" = "y" ]; then - echo -e "${NOTE} Proceeding to download the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" - - # Delete existing directories starting with JaKooLit-Hyprland-Dots - find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} + - rm -f Hyprland-Dots.tar.gz - printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n" - else - echo -e "${NOTE} User chose not to upgrade. Exiting..." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" - exit 0 - fi - fi +# Check if the specific release tarball exists +if [ -f "Hyprland-Dots-${specific_version}.tar.gz" ]; then + printf "${NOTE} Hyprland-Dots-${specific_version}.tar.gz found.\n" + echo -e "${OK} Hyprland-Dots-${specific_version}.tar.gz is already downloaded." + exit 0 fi -printf "${NOTE} Downloading the latest Hyprland source code release...\n" +printf "${NOTE} Downloading the Hyprland-Dots-${specific_version} source code release...\n" -# Fetch the tag name for the latest release using the GitHub API -latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4) - -# Check if the tag is obtained successfully -if [ -z "$latest_tag" ]; then - echo -e "${ERROR} Unable to fetch the latest tag information." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" +# Fetch the tag name for the specific release using the GitHub API +release_info=$(curl -s "https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/tags/${specific_version}") +if [ -z "$release_info" ]; then + echo -e "${ERROR} Unable to fetch information for release ${specific_version}." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi -# Fetch the tarball URL for the latest release using the GitHub API -latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tarball_url" | cut -d '"' -f 4) +# Get the tarball URL for the specific release +tarball_url=$(echo "$release_info" | grep "tarball_url" | cut -d '"' -f 4) # Check if the URL is obtained successfully -if [ -z "$latest_tarball_url" ]; then - echo -e "${ERROR} Unable to fetch the tarball URL for the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" +if [ -z "$tarball_url" ]; then + echo -e "${ERROR} Unable to fetch the tarball URL for release ${specific_version}." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi -# Get the filename from the URL and include the tag name in the file name -file_name="Hyprland-Dots-${latest_tag}.tar.gz" - -# Download the latest release source code tarball to the current directory -if curl -L "$latest_tarball_url" -o "$file_name"; then +# Download the specific release source code tarball to the current directory +if curl -L "$tarball_url" -o "Hyprland-Dots-${specific_version}.tar.gz"; then # Extract the contents of the tarball - tar -xzf "$file_name" || exit 1 + tar -xzf "Hyprland-Dots-${specific_version}.tar.gz" || exit 1 - # delete existing Hyprland-Dots + # Delete existing Hyprland-Dots rm -rf JaKooLit-Hyprland-Dots # Identify the extracted directory - extracted_directory=$(tar -tf "$file_name" | grep -o '^[^/]\+' | uniq) + extracted_directory=$(tar -tf "Hyprland-Dots-${specific_version}.tar.gz" | grep -o '^[^/]\+' | uniq) # Rename the extracted directory to JaKooLit-Hyprland-Dots mv "$extracted_directory" JaKooLit-Hyprland-Dots || exit 1 @@ -91,9 +56,9 @@ if curl -L "$latest_tarball_url" -o "$file_name"; then chmod +x copy.sh ./copy.sh - echo -e "${OK} Latest Dotfiles release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots folder for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${OK} Hyprland-Dots-${specific_version} release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots folder for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" else - echo -e "${ERROR} Failed to download the latest Dotfiles release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${ERROR} Failed to download Hyprland-Dots-${specific_version} release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi