#!/bin/sh # Script to upgrade/install the solarc-theme #URL theme_name=solarc-theme # Theme name download_url=https://github.com/apheleia/$theme_name/archive/master.tar.gz # for test purporses only (the repo needs to have this script) # download_url=https://github.com/leoheck/$theme_name/archive/master.tar.gz # Tempdir tempdir=/tmp/$theme_name # Directories lightdir=/usr/share/themes/SolArc darkerdir=/usr/share/themes/SolArc-Darker darkdir=/usr/share/themes/SolArc-Dark userlightdir=$HOME/.themes/SolArc userdarkerdir=$HOME/.themes/SolArc-Darker userdarkdir=$HOME/.themes/SolArc-Dark userlightdir2=$HOME/local/share/themes/SolArc userdarkerdir2=$HOME/local/share/themes/SolArc-Darker userdarkdir2=$HOME/local/share/themes/SolArc-Dark #Functions show_error() { printf "\033[1;31m$@\033[0m\n" } check_root() { if [ "$(id -u)" -ne 0 ]; then show_error "This script has to be run as root" echo exec sudo "$0" "$@" # Instead of exit, just re-execute as root fi } check_command() { fail=false for i in "$@" do command -v $i >/dev/null 2>&1 || { show_error >&2 "This script requires "$i" but it's not installed."; fail=true; } done if [ "$fail" = true ]; then echo echo "Aborting." echo exit 1; fi } check_directories() { dirfound=false echo "Checking if theme is installed..." echo for i in "$@" do if [ -d "$i" ]; then echo "Found $i" dirfound=true fi done if [ "$dirfound" = true ]; then echo echo "The above directories will be overwritten." fi if [ "$dirfound" = false ]; then echo "Theme is not installed." fi } install_theme() { # Clean tempdir rm -rf $tempdir && mkdir $tempdir && cd $tempdir # Get the sources && Remove current installation only if download and unpack are successful wget $download_url && tar xf master.tar.gz && rm -rf $lightdir $darkerdir $darkdir && cd "$theme_name"-master # Build and install ./autogen.sh --prefix=/usr make install # Install this script if [ -f $(basename $0) ]; then if [ ! -f /usr/bin/$(basename $0) ]; then echo read -r -p "Do you like to install the $(basename $0) for future upgrades? [y/N] " response case $response in [yY][eE][sS]|[yY]) echo "Installing $(basename $0) on /usr/bin/" cp -r solarc-theme-upgrade /usr/bin/ ;; *) echo "Aborted by user" exit 0; ;; esac else echo "Upgrading $(basename $0)" cp -f $(basename $0) /usr/bin/ fi fi # Remove the sources rm -rf $tempdir echo echo "Installation complete." } # Main part clear echo '####################################' echo '# SolArc Theme Install Script #' echo '####################################' echo #Check available commands check_command automake wget pkg-config autoconf make tar #Check if we are root check_root #Check if theme is installed check_directories $lightdir $darkerdir $darkdir echo read -r -p "Do you want to continue installation? [y/N] " response case $response in [yY][eE][sS]|[yY]) install_theme ;; *) echo "Aborted by user" exit 0; ;; esac