-
Notifications
You must be signed in to change notification settings - Fork 5
/
reset_pli.sh
137 lines (98 loc) · 4.31 KB
/
reset_pli.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
#!/bin/bash
# Get current user id and store as var
USER_ID=$(getent passwd $EUID | cut -d: -f1)
# Set Colour Vars
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${RED}#########################################################################"
echo -e "${RED}#########################################################################"
echo -e "${RED}"
echo -e "${RED} !! WARNING !!${NC} Plugin Node Reset Script ${RED}!! WARNING !!${NC}"
echo -e "${RED}"
echo -e "${RED}#########################################################################"
echo -e "${RED}#########################################################################${NC}"
echo
echo
echo
# Ask the user acc for login details (comment out to disable)
CHECK_PASSWD=false
while true; do
read -t10 -r -p ":: DESTRUCTIVE :: Confirm that you wish to RESET your Plugin node installation ? (Y/n) " _input
if [ $? -gt 128 ]; then
#clear
echo
echo "timed out waiting for user response - quitting..."
exit 0
fi
case $_input in
[Yy][Ee][Ss]|[Yy]* )
break
;;
[Nn][Oo]|[Nn]* )
exit 0
;;
* ) echo "Please answer (y)es or (n)o.";;
esac
done
# Authenticate sudo perms before script execution to avoid timeouts or errors
sudo -l > /dev/null 2>&1
# Get local hostname and load the vars file
PLI_VARS_FILE="plinode_$(hostname -f).vars"
source ~/$PLI_VARS_FILE
echo -e "${GREEN} ~~ Performing fresh keys export ~~${NC}"
./pli_node_scripts.sh keys
## Rough script to roll back installation for testing purposes...
## Use with caution !
#sudo su
# Stop & Delete all active PM2 processes
pm2 stop all && pm2 delete all
# Stop the POSTGRES service
sudo systemctl stop postgresql
# Delete folders for; Go install, plugin-deployment install, POSTGRES.
sudo rm -rf /usr/local/go
sudo rm -rf /$PLI_DEPLOY_PATH
sudo rm -rf /usr/lib/postgresql/ && sudo rm -rf /var/lib/postgresql/ && sudo rm -rf /var/log/postgresql/ && sudo rm -rf /etc/postgresql/ && sudo rm -rf /etc/postgresql-common/
# Remove the POSTGRES packages & clean up linked packages
sudo apt --purge remove postgresql* -y && sudo apt purge postgresql* -y
sudo apt --purge remove postgresql -y postgresql-doc -y postgresql-common -y
sudo apt autoremove -y
# Clean up any remaining folders
sudo rm -rf /usr/lib/postgresql/ && sudo rm -rf /var/lib/postgresql/ && sudo rm -rf /var/log/postgresql/ && sudo rm -rf /etc/postgresql/ && sudo rm -rf /etc/postgresql-common/
# Remove the POSTGRES install system account & group
#sudo userdel -r postgres && sudo groupdel postgres
if [ $(getent passwd postgres > /dev/null 2>&1) ]; then
sudo userdel -r postgres
fi
if [ $(getent group postgres > /dev/null 2>&1) ]; then
sudo groupdel postgres
fi
# Remove the group for local backups
if [ $(getent group nodebackup) > /dev/null 2>&1 ]; then
sudo groupdel nodebackup
fi
# Remove all plugin, nodejs linked folders for current user & root
cd ~/; sudo sh -c "rm -rf .cache/ && rm -rf .nvm && rm -rf .npm && rm -rf .plugin && rm -rf Plugin && rm -rf .pm2 && rm -rf work && rm -rf go && rm -rf .yarn*"
if [ -e ~/.tmp_profile ]; then
rm -f ~/.tmp_profile
fi
# Remove logrotate file
if [ -e /etc/logrotate.d/plugin-logs ]; then
sudo sh -c 'rm -f /etc/logrotate.d/plugin-logs'
fi
sed -i.bak '/GOROOT=\/usr\/local\/go/d' ~/.profile
sed -i '/GOPATH=*/d' ~/.profile
sed -i '/PATH=\//d' ~/.profile
sed -i '/SECURE_COOKIES=false/d' ~/.profile
sed -i.bak '/export NVM_DIR="$HOME\/\.nvm/d' ~/.bashrc
sed -i '/[ -s "$NVM_DIR/nvm\.sh" ] \&\& \\\. "$NVM_DIR\/nvm\.sh" # This loads nvm/d' ~/.bashrc
sed -i '/[ -s "$NVM_DIR/bash_completion" ] \&\& \\\. "$NVM_DIR\/bash_completion" # This loads nvm bash_completion/d' ~/.bashrc
bash ~/.profile
sudo -u $USER_ID sh -c 'bash ~/.profile'
echo -e "${GREEN}#########################################################################"
echo -e "${GREEN}## INFO: Reset process completed. exiting...${NC}"
echo
echo
echo -e "${GREEN}## ACTION: paste the following to update your session with updated env variables..${NC}"
echo
echo -e "${GREEN}## source ~/.profile${NC}"