diff --git a/scripts/install.sh b/scripts/install.sh new file mode 100755 index 0000000..1314915 --- /dev/null +++ b/scripts/install.sh @@ -0,0 +1,219 @@ +#! /bin/bash + +INPUT=$1 + +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 +} + +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 + +} + +install() { + + # PREVIEW + + # 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 + + # INSTALL + + # 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." +} + +# 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 +} + +main() { + 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 +} + + +ROOT_UID=0 +DEST_DIR= +URL="https://github.com/ful1e5/apple_cursor/releases/download/1.0.1-beta/macOSBigSur.tar" +macOSBigSur="./macOSBigSur" +DOWNLOAD_FILE_NAME="$macOSBigSur.tar" + +cd "$( dirname "${BASH_SOURCE[0]}" )" || exitt + +# Download files at current directory +if [[ -f "$DOWNLOAD_FILE_NAME" ]]; then + echo -e "\nmacOSBigSur.tar file already exists" + show_question "\nDownload Fresh Theme OR Continue with existing file? (D)ownload File, (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 + +# 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" + +main + +# Remove directory +rm -rf macOSBigSur \ No newline at end of file