3 changed files with 101 additions and 1 deletions
@ -0,0 +1,84 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
# 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)" |
||||||
|
WARN="$(tput setaf 166)[WARN]$(tput sgr0)" |
||||||
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" |
||||||
|
ORANGE=$(tput setaf 166) |
||||||
|
YELLOW=$(tput setaf 3) |
||||||
|
RESET=$(tput sgr0) |
||||||
|
|
||||||
|
printf "${NOTE} Checking for existing Hyprland-Dots.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)." |
||||||
|
read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice |
||||||
|
if [ "$upgrade_choice" = "y" ]; then |
||||||
|
echo -e "${NOTE} Proceeding to download the latest release." |
||||||
|
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..." |
||||||
|
exit 0 |
||||||
|
fi |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
printf "${NOTE} Downloading the latest Hyprland source code release...\n" |
||||||
|
|
||||||
|
# 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) |
||||||
|
|
||||||
|
# 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." |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
# Extract the direct download URL from the tarball URL |
||||||
|
download_url=$(echo "$latest_tarball_url" | sed 's/{\/tarball\/.*}//') |
||||||
|
|
||||||
|
# Get the filename from the URL |
||||||
|
file_name=$(basename "$download_url") |
||||||
|
|
||||||
|
# Download the latest release source code tarball to the current directory |
||||||
|
if curl -LOk "$download_url"; then |
||||||
|
mv "$file_name" Hyprland-Dots.tar.gz # Rename the downloaded file if needed |
||||||
|
|
||||||
|
# Extract the contents of the tarball |
||||||
|
tar -xzf Hyprland-Dots.tar.gz |
||||||
|
|
||||||
|
# Rename the extracted directory to JaKooLit-Hyprland-Dots |
||||||
|
mv JaKooLit-Hyprland-Dots-* JaKooLit-Hyprland-Dots |
||||||
|
|
||||||
|
cd "JaKooLit-Hyprland-Dots" || exit 1 |
||||||
|
|
||||||
|
# Set execute permission for copy.sh and execute it |
||||||
|
chmod +x copy.sh |
||||||
|
./copy.sh 2>&1 | tee -a "../install-$(date +'%d-%H%M%S')_dots.log" |
||||||
|
|
||||||
|
echo -e "${OK} Latest source code release downloaded, extracted, and processed successfully." |
||||||
|
else |
||||||
|
echo -e "${ERROR} Failed to download the latest source code release." |
||||||
|
exit 1 |
||||||
|
fi |
||||||
Loading…
Reference in new issue