aboutsummaryrefslogtreecommitdiff
path: root/solarc-theme-upgrade
blob: 1eae5855f297a5263094ca700ee9225fa7d6494f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/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