-
Notifications
You must be signed in to change notification settings - Fork 1
/
install.sh
executable file
·140 lines (115 loc) · 3.52 KB
/
install.sh
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
#!/bin/bash
# Author: Carlos David Rodríguez Peña (Garinoth)
# GitHub: https://github.com/Garinoth
###############################################################################
### GLOBAL VARIABLES ##########################################################
###############################################################################
###############################################################################
###############################################################################
### FUNCTIONS #################################################################
###############################################################################
# Help function
function usage () {
cat << EOF
This script will install the program sublime-text-2
OPTIONS:
-h Show this message
-v Verbose
-d Install development version
-u Uninstall
-r Reinstall
-c Install Package Control
-p Install the plugin set
EOF
}
# Log function. Only works if the verbose option is selected
function log () {
if [[ $VERBOSE -eq 1 ]]; then
echo "$@"
fi
}
# Function that executes the given code checking the verbose option
function execute () {
printf "$2... "
if [[ $VERBOSE -eq 1 ]]; then
eval $1
else
eval $1 &> /dev/null
fi
printf "Done\n"
}
# Apt-get Installation function. Adds the repository and installs either the
# stable or development version
function install () {
execute "add-apt-repository -y ppa:webupd8team/sublime-text-2" "Adding repository"
execute "apt-get update" "Updating Libraries"
if [[ $REINSTALL -eq 1 ]]; then
uninstall
fi
if [[ $DEV -eq 1 ]]; then
execute "apt-get -y install sublime-text-dev" "Installing sublime-text-2 development version"
else
execute "apt-get -y install sublime-text" "Installing sublime-text-2"
fi
if [[ $PC -eq 1 ]]; then
execute "sudo -u $SUDO_USER wget -N -P $HOME/.config/sublime-text-2/Installed\ Packages http://sublime.wbond.net/Package%20Control.sublime-package" "Downloading Package Control"
fi
if [[ $PLUGINS -eq 1 ]]; then
echo "TODO Install plugins"
fi
}
# Uninstall function
function uninstall () {
execute "apt-get -y remove sublime-text*" "Uninstalling sublime-text-2"
execute "rm -r $HOME/.config/sublime-text-2" "Removing config, plugins, etc"
}
###############################################################################
###############################################################################
### MAIN EXECUTION ############################################################
###############################################################################
# Check optional parameters
while getopts "hvdurcp:" OPTION; do
case $OPTION in
h)
usage
exit 1
;;
v)
VERBOSE=1
;;
d)
DEV=1
;;
u)
UNINSTALL=1
;;
r)
REINSTALL=1
;;
c)
PC=1
;;
p)
PLUGINS=1
;;
?)
echo "Invalid option: -$OPTION" >&2
usage
exit 1
;;
:)
echo "Option -$OPTION requires an argument." >&2
exit 1
;;
esac
done
# Check root permission
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "Error: This script must be run as root"
exit 1
fi
if [[ $UNINSTALL -eq 1 ]]; then
uninstall
else
install
fi