This repository has been archived by the owner on Sep 26, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall
executable file
·132 lines (113 loc) · 4.8 KB
/
install
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
#!/usr/bin/env bash
## Author : Zim Muller
## Github : @zim0369
## Reddit : @zim0369
## Alacritty installer script
## ANSI Colors (FG & BG)
RED="$(printf '\033[31m')" GREEN="$(printf '\033[32m')" ORANGE="$(printf '\033[33m')" BLUE="$(printf '\033[34m')"
MAGENTA="$(printf '\033[35m')" CYAN="$(printf '\033[36m')" WHITE="$(printf '\033[37m')" BLACK="$(printf '\033[30m')"
REDBG="$(printf '\033[41m')" GREENBG="$(printf '\033[42m')" ORANGEBG="$(printf '\033[43m')" BLUEBG="$(printf '\033[44m')"
MAGENTABG="$(printf '\033[45m')" CYANBG="$(printf '\033[46m')" WHITEBG="$(printf '\033[47m')" BLACKBG="$(printf '\033[40m')"
DEFAULT_FG="$(printf '\033[39m')" DEFAULT_BG="$(printf '\033[49m')"
## Directories
DIR="$(pwd)"
ALACRITTY_DIR="$HOME/.config/alacritty"
## Banner
banner () {
clear
echo "
${ORANGE}╭━━━┳━━━┳╮╱╱╭━━━╮
${ORANGE}┃╭━╮┃╭━━┫┃╱╱┃╭━╮┃
${ORANGE}┃┃╱╰┫╰━━┫┃╱╱┃┃╱┃┃
${ORANGE}┃┃╭━┫╭━━┫┃╱╭┫╰━╯┃
${ORANGE}┃╰┻━┃╰━━┫╰━╯┃╭━╮┃
${ORANGE}╰━━━┻━━━┻━━━┻╯╱╰╯
${ORANGE}☴ ${CYAN}T̼I̼L̼L̼ ̼I̼T̼'̼S̼ ̼G̼O̼N̼E̼ ${ORANGE}☴
${ORANGE}☴☴☴☴☴☴☴☴☴☴☴☴☴☴☴☴☴☴
"
}
## Script Termination
exit_on_signal_SIGINT () {
{ printf "\n\n%s\n" " ${BLUE}[${RED}*${BLUE}] ${RED}Script interrupted." 2>&1; echo; reset_color; }
exit 0
}
exit_on_signal_SIGTERM () {
{ printf "\n\n%s\n" " ${BLUE}[${RED}*${BLUE}] ${RED}Script terminated." 2>&1; echo; reset_color; }
exit 0
}
trap exit_on_signal_SIGINT SIGINT
trap exit_on_signal_SIGTERM SIGTERM
## Reset terminal colors
reset_color() {
tput sgr0 # reset attributes
tput op # reset color
return
}
## Prerequisite
prerequisite() {
dependencies=(alacritty git sed grep egrep find)
for dependency in "${dependencies[@]}"; do
type -p "$dependency" &>/dev/null || {
banner
{ echo; echo " ${BLUE}[${RED}!${BLUE}] ${RED}ERROR: Could not find ${MAGENTA}'${dependency}'${RED}, is it installed?" >&2; echo; }
{ reset_color; exit 1; }
}
done
}
## Check for previous installation
check_prev () {
banner
if [[ (-L /usr/local/bin/gela) || (-f /usr/local/bin/gela) ]]; then
{ echo; echo " ${BLUE}[${RED}!${BLUE}] ${MAGENTA}Gelacritty ${GREEN}is already installed."; }
{ read -p " ${BLUE}[${RED}?${BLUE}] ${ORANGE}Do you wish to update? (y/n): ${GREEN}"; echo; }
if [[ "$REPLY" =~ ^[y/Y]$ ]]; then
install_gelacritty
else
{ reset_color; exit; }
fi
else
{ echo; install_gelacritty; }
fi
}
## Install gelacritty
install_gelacritty () {
echo " ${BLUE}[${RED}*${BLUE}] ${ORANGE}Installing Gelacritty..."
# Delete old files
if [[ (-L /usr/local/bin/gela) && (-d /usr/local/share/gelacritty) ]]; then
echo " ${BLUE}[${RED}*${BLUE}] ${RED}Deleting files from previous installation..."${BLUE}
{ printf " "; sudo rm -r /usr/local/bin/gela /usr/local/share/gelacritty /usr/local/share/fonts/gelacritty; echo; }
fi
# Gelacritty config dir
if [[ ! -d $ALACRITTY_DIR ]]; then
mkdir $ALACRITTY_DIR
fi
if ! [ -s "${ALACRITTY_DIR}/alacritty.yml" ]; then
echo " ${BLUE}[${RED}*${BLUE}] ${RED}Cannot find alacritty configuration: '${ALACRITTY_DIR}/alacritty.yml'"${BLUE}
printf '%s\n' " ${BLUE}[${RED}*${BLUE}] ${RED}Creating one for you..."${BLUE}
# sed -i -e 's|program: .*|program: '$SHELL'|g' $DIR/alacritty.yml
cp $DIR/alacritty.yml $ALACRITTY_DIR
fi
if ! grep --quiet 'gelacritty\.yml' "${ALACRITTY_DIR}/alacritty.yml"; then
printf '%s\n' " ${BLUE}[${RED}*${BLUE}] ${RED}Adding gelacritty import to alacritty config..."
printf 'import:\n- %s' "${ALACRITTY_DIR}/gelacritty.yml" >> "${ALACRITTY_DIR}/alacritty.yml"
fi
# Copying files
{ echo " ${BLUE}[${RED}*${BLUE}] ${ORANGE}Copying files to '/usr/local/share' directory..."${BLUE}; }
{ printf " "; sudo mkdir /usr/local/share/gelacritty; sudo mkdir -p /usr/local/share/fonts/gelacritty; }
{ sudo cp -r $DIR/colors $DIR/gela $DIR/alacritty.yml /usr/local/share/gelacritty/; sudo cp -r $DIR/fonts/* /usr/local/share/fonts/gelacritty/; }
{ sudo chmod +x /usr/local/share/gelacritty/gela; sudo fc-cache; sudo ln -s /usr/local/share/gelacritty/gela /usr/local/bin/gela; }
# Verify files
if [[ (-L /usr/local/bin/gela) && (-d /usr/local/share/gelacritty) ]]; then
{ echo; echo " ${BLUE}[${RED}*${BLUE}] ${GREEN}Successfully Installed."; }
{ echo " ${BLUE}[${RED}*${BLUE}] ${GREEN}Now You Can Run This Program By Just typing ${MAGENTA}gela${GREEN}."; echo; }
{ reset_color; exit 0; }
else
{ echo " ${BLUE}[${RED}!${BLUE}] ${RED}Error Occured."; echo; reset_color; exit 1; }
fi
}
## Main
main () {
prerequisite
check_prev
}
main