dotfiles/bin/.bin/redis.sh
2025-04-21 12:17:14 -03:00

50 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
# Define paths
bin_dir=~/.bin
bin_file="${bin_dir}/redis"
# Create directory if it doesn't exist
mkdir -p "${bin_dir}"
# Set current working directory
cd "${bin_dir}"
if [ ! -f "${bin_file}" ]; then
notify-send -u normal "⏬ Redis Desktop Manager" "Downloading..."
# Get latest release info and parse with proper JSON handling
release_info=$(curl -s https://api.github.com/repos/qishibo/AnotherRedisDesktopManager/releases/latest)
# Determine system architecture
arch=$(uname -m)
if [ "${arch}" = "x86_64" ]; then
arch_pattern="x86_64"
elif [ "${arch}" = "aarch64" ]; then
arch_pattern="arm64"
else
echo "Unsupported architecture: ${arch}"
exit 1
fi
# Find appropriate AppImage for this architecture
filename=$(echo "${release_info}" | jq -r ".assets[].name" | grep "AppImage" | grep "${arch_pattern}")
echo "Selected filename: ${filename}"
# Get download URL
fileurl=$(echo "${release_info}" | jq -r --arg filename "${filename}" '.assets[] | select(.name == $filename) | .browser_download_url')
echo "Download URL: ${fileurl}"
# Download and make executable
if [ -n "${fileurl}" ] && [ "${fileurl}" != "null" ]; then
wget -q --show-progress -O "${bin_file}" "${fileurl}"
chmod +x "${bin_file}"
echo "Successfully downloaded Redis Desktop Manager"
else
echo "Failed to find download URL for architecture: ${arch}"
exit 1
fi
fi
# Execute with parameters if provided
"${bin_file}" -f ${1:+"-i"} ${1:+"$1"} ${2:+"-o"} ${2:+"$2"}