agsdotfilesdotshyprlandhyprland-configricerofirofi-configshell-scriptsswwwwallustwaybarwaybar-modulewaybar-themes
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.6 KiB
97 lines
3.6 KiB
#!/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} Downloading / 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." |
|
|
|
# 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..." |
|
exit 0 |
|
fi |
|
fi |
|
fi |
|
|
|
printf "${NOTE} Downloading the latest Hyprland 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." |
|
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) |
|
|
|
# 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 |
|
|
|
# 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 |
|
# Extract the contents of the tarball |
|
tar -xzf "$file_name" || exit 1 |
|
|
|
# delete existing Hyprland-Dots |
|
rm -rf JaKooLit-Hyprland-Dots |
|
|
|
# Identify the extracted directory |
|
extracted_directory=$(tar -tf "$file_name" | grep -o '^[^/]\+' | uniq) |
|
|
|
# Rename the extracted directory to JaKooLit-Hyprland-Dots |
|
mv "$extracted_directory" JaKooLit-Hyprland-Dots || exit 1 |
|
|
|
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
|
|
|