-
Notifications
You must be signed in to change notification settings - Fork 608
/
arc-theme-upgrade
executable file
·148 lines (119 loc) · 3.08 KB
/
arc-theme-upgrade
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 arc-theme
#URL
theme_name=arc-theme
# Theme name
download_url=https://github.com/horst3180/$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/Arc
darkerdir=/usr/share/themes/Arc-Darker
darkdir=/usr/share/themes/Arc-Dark
userlightdir=$HOME/.themes/Arc
userdarkerdir=$HOME/.themes/Arc-Darker
userdarkdir=$HOME/.themes/Arc-Dark
userlightdir2=$HOME/local/share/themes/Arc
userdarkerdir2=$HOME/local/share/themes/Arc-Darker
userdarkdir2=$HOME/local/share/themes/Arc-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 arc-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 '# Arc 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