forked from leewardslope/t2d
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patht2d.sh
133 lines (117 loc) · 4.47 KB
/
t2d.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
#! /bin/bash
# This script will automate the process of downloading other reqiurired scripts and needs.
# Using tput will eliminate the usage of "-e" in echo, and can be used anywhere
RED="$(tput setaf 1)" # ${RED}
GREEN="$(tput setaf 2)" # ${GREEN}
YELLOW="$(tput setaf 3)" # ${YELLOW}
BLUE="$(tput setaf 6)" # ${BLUE}
END="$(tput setaf 7)" # ${END}
function select_option {
# little helpers for terminal print control and key input
ESC=$( printf "\033")
cursor_blink_on() { printf "$ESC[?25h"; }
cursor_blink_off() { printf "$ESC[?25l"; }
cursor_to() { printf "$ESC[$1;${2:-1}H"; }
print_option() { printf " $1 "; }
print_selected() { printf " $ESC[7m $1 $ESC[27m"; }
get_cursor_row() { IFS=';' read -sdR -p $'\E[6n' ROW COL; echo ${ROW#*[}; }
key_input() { read -s -n3 key 2>/dev/null >&2
if [[ $key = $ESC[A ]]; then echo up; fi
if [[ $key = $ESC[B ]]; then echo down; fi
if [[ $key = "" ]]; then echo enter; fi; }
# initially print empty new lines (scroll down if at bottom of screen)
for opt; do printf "\n"; done
# determine current screen position for overwriting the options
local lastrow=`get_cursor_row`
local startrow=$(($lastrow - $#))
# ensure cursor and input echoing back on upon a ctrl+c during read -s
trap "cursor_blink_on; stty echo; printf '\n'; exit" 2
cursor_blink_off
local selected=0
while true; do
# print options by overwriting the last lines
local idx=0
for opt; do
cursor_to $(($startrow + $idx))
if [ $idx -eq $selected ]; then
print_selected "$opt"
else
print_option "$opt"
fi
((idx++))
done
# user key control
case `key_input` in
enter) break;;
up) ((selected--));
if [ $selected -lt 0 ]; then selected=$(($# - 1)); fi;;
down) ((selected++));
if [ $selected -ge $# ]; then selected=0; fi;;
esac
done
# cursor position back to normal
cursor_to $lastrow
printf "\n"
cursor_blink_on
return $selected
}
function select_opt {
select_option "$@" 1>&2
local result=$?
echo $result
return $result
}
# array=("Manual")
clear
echo "${YELLOW}Do you have dokku in your system/VPS?${END}"
options=("${BLUE}Yes${END}: Skip dokku installation" "${BLUE} No${END}: Install Dokku(Don't use this to Update dokku)" "${array[@]}") # join arrays to add some variable array
case `select_opt "${options[@]}"` in
0) echo "Skipping dokku installation";;
1)
echo "${YELLOW}Downloading Dokku from its Official Repository${END}"
wget https://raw.githubusercontent.com/dokku/dokku/v0.24.10/bootstrap.sh
wait
sudo DOKKU_TAG=v0.24.10 bash bootstrap.sh &
process_id=$!
wait $process_id
echo "Exit status: $?";
echo "${RED}Before continuing forward, verify Dokku installation by visiting your IP address in your local machine browser${END}";;
*) echo "selected ${options[$?]}";;
esac
echo "${YELLOW}Download new script and save a copy of your old script?${END}"
options=("${BLUE}YES${END}: Download the Updated Version" "${BLUE} NO${END}: Continue the with Old version" "${array[@]}") # join arrays to add some variable array
case `select_opt "${options[@]}"` in
0)
echo "you choose to download new script"
FILE=easydokku.sh
if [ -f "$FILE" ]; then
echo "$FILE exists => saving it in old-easydokku.sh"
sudo cp easydokku.sh old-easydokku.sh
wait
echo "updating to new file"
sudo rm -r easydokku.sh
wget https://raw.githubusercontent.com/akhil-naidu/t2d/master/easydokku.sh
wait
echo "Downloaded New file"
else
echo "$FILE does not exist."
echo "Dowloading the latest file"
wget https://raw.githubusercontent.com/akhil-naidu/t2d/master/easydokku.sh
wait
fi;;
1)
FILE=easydokku.sh
if [ -f "$FILE" ]; then
echo "$FILE exists => using easydokku.sh"
sudo chmod +x easydokku.sh
else
echo "$FILE does not exist."
echo "Dowloading the latest file"
wget https://raw.githubusercontent.com/akhil-naidu/t2d/master/easydokku.sh
wait
sudo chmod +x easydokku.sh
fi;;
*) echo "selected ${options[$?]}";;
esac
chmod +x easydokku.sh
./easydokku.sh