apple_cursor/scripts/install.sh
2020-08-11 09:01:30 +05:30

222 lines
No EOL
4.7 KiB
Bash
Executable file

#! /bin/bash
# auto-install patch by @luizoti on Bibata Cursror => https://github.com/ful1e5/Bibata_Cursor/commit/eb84f27919e433f9b72e7ef9f6444d4a7d276ba9
INPUT=$1
ROOT_UID=0
DEST_DIR=
URL="https://github.com/ful1e5/apple_cursor/releases/download/1.0.2/macOSBigSur.tar"
macOSBigSur="./macOSBigSur"
DOWNLOAD_FILE_NAME="$macOSBigSur.tar"
cd "$( dirname "${BASH_SOURCE[0]}" )" || exitt
# Destination directory
if [ "$UID" -eq "$ROOT_UID" ]; then
DEST_DIR="/usr/share/icons"
else
DEST_DIR="$HOME/.icons"
fi
echo -e "\e[1m\n+---------------------------------------------+"
echo -e "| macOSBigSur Cursor Installer Script |"
echo -e "+---------------------------------------------+\n\e[0m"
# -------------------- Color print Functions --------------------
show_question() {
echo -e "\033[1;34m$@\033[0m"
}
show_dir() {
echo -e "\033[1;32m$@\033[0m"
}
show_error() {
echo -e "\033[1;31m$@\033[0m"
}
end() {
echo -e "\nExiting...\n"
exit 0
}
# -------------------- Helpers --------------------
continue() {
case ${INPUT} in
'-a' )
:
;;
'-h' )
echo " -a - Auto-install for all users!"
;;
* )
show_question "\nDo you want to continue? (Y)es, (N)o : \n"
read INPUT
case $INPUT in
( [Yy]* ) ;;
( [Nn]* ) end;;
( * ) show_error "\nSorry, try again."; continue;;
esac
;;
esac
}
replace() {
show_question "\nFound an existing installation. Replace it? (Y)es, (N)o :\n"
read INPUT
case $INPUT in
( [Yy]* ) rm -rf "$@/macOSBigSur*" 2>/dev/null;;
( [Nn]* ) ;;
( * ) show_error "\tSorry, try again."; replace $@;;
esac
}
# For download the package
function download {
echo -e "\nDownloading macOSBigSur Theme..."
url=$1
filename=$2
if [ -x "$(which wget)" ] ; then
curl -o $2 -fL $url
elif [ -x "$(which curl)" ]; then
wget -q $url -O $2 --show-progress
else
show_error "Could not find curl or wget, please install one." >&2
fi
if [ $? -eq 0 ]; then
echo "Downloading Complete"
else
show_error "Downloading... FAIL"
fi
}
# unpack
function unpack {
echo -e "\nUnpacking Theme..."
file=$1
dir=${file%.*}
echo "$dir"
# creating dir and extract .tar file content to it
mkdir "$dir" && tar -xvf "$file" -C "$dir"
# remove .tar file
rm -rf $file
if [ $? -eq 0 ]; then
echo "Unpacking Complete"
else
show_error "Unpacking Theme... FAIL"
fi
}
install() {
# Cecking old version exits or not
if [ -f "$DOWNLOAD_FILE_NAME" ] || [ -f "$macOSBigSur" ]; then
echo -e "\nmacOSBigSur.tar file already exists"
show_question "\nDownload Fresh Theme OR Continue with existing file? (D)ownload File (recommended), (E)xisting File : \n "
read INPUT
case $INPUT in
( [Dd]* ) download $URL $DOWNLOAD_FILE_NAME;;
( [Ee]* ) ;;
( * ) show_error "\nSorry, try again."; continue;;
esac
else
download $URL $DOWNLOAD_FILE_NAME
fi
# unpack file
unpack $DOWNLOAD_FILE_NAME
# Show destination directory
echo -e "\nmacOSBigSur Cursor Theme will be installed in:\n"
show_dir "\t$DEST_DIR"
if [ "$UID" -eq "$ROOT_UID" ]; then
echo -e "\nIt will be available to all users."
else
echo -e "\nTo make them available to all users, run this script as root."
fi
continue
# Check destination directory
if [ ! -d $DEST_DIR ]; then
mkdir -p $DEST_DIR
elif [[ -d $DEST_DIR/macOSBigSur ]]; then
replace $DEST_DIR
fi
echo -e "\nInstalling macOSBigSur..."
# Copying files
cp -rf $macOSBigSur $DEST_DIR
chmod -R 755 $DEST_DIR/macOSBigSur
echo "Installation complete!"
echo "Do not forget you have to set macOSBigSur Cursor"
}
remove() {
# PREVIEW
# Show installation directory
if [[ -d $DEST_DIR/macOSBigSur ]]; then
echo -e "\nmacOSBigSur Theme installed in:\n"
show_dir "\t$DEST_DIR"
if [ "$UID" -eq "$ROOT_UID" ]; then
echo -e "\nIt will remove for all users."
else
echo -e "\nIt will remove only for current user."
fi
continue
else
show_error "\nmacOSBigSur Cursor is not installed in:\n"
show_dir "\t$DEST_DIR\n"
end
fi
echo -e "\nRemoving macOSBigSur..."
rm -rf $DEST_DIR/macOSBigSur
echo "Removing complete"
echo "I hope to see you soon."
}
main() {
# Cases
case ${INPUT} in
'-a' )
install
;;
'-h' )
echo " -a - Auto-install for all users!"
;;
* )
show_question "What you want to do: (I)nstall, (R)emove : \n"
read INPUT
case $INPUT in
( [Ii]* ) install;;
( [Rr]* ) remove;;
( * ) show_error "\nSorry, try again."; main;;
esac
;;
esac
# Remove directory
rm -rf macOSBigSur
}
( cd /tmp/ && main )