forked from rustrict/keenetic-traffic-via-vpn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuninstall.sh
67 lines (54 loc) · 1.66 KB
/
uninstall.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
#!/bin/sh
msg() {
printf "%s\n" "$1"
}
error_msg() {
printf "[!] %s\n" "$1"
}
delete_file() {
if [ -f "$1" ]; then
if rm "$1" 2>/dev/null; then
msg "${2:-"Файл"} \"${1##*/}\" удален."
else
error_msg "Не удалось удалить ${3:-"файл"} \"${1##*/}\"."
fi
else
msg "${2:-"Файл"} \"${1##*/}\" отсутствует."
fi
}
PRJ_DIR="/opt/etc/unblock"
for _tool in ip rm; do
command -v "$_tool" >/dev/null 2>&1 || {
error_msg "Для работы скрипта требуется \"${_tool}\"."
exit 1
}
done
# https://stackoverflow.com/a/226724
read -p "Приступить к удалению? [y/n] " yn
case "$yn" in
[Yy]*) ;;
*) msg "Удаление отменено."; exit 1;;
esac
if ip route flush table 1000; then
msg "Таблица маршрутизации #1000 очищена."
fi
if ip rule del priority 1995 2>/dev/null; then
msg "Правило маршрутизации удалено."
fi
delete_file "/opt/etc/cron.daily/routing_table_update" "Симлинк" "симлинк"
delete_file "/opt/etc/ndm/ifstatechanged.d/ip_rule_switch" "Симлинк" "симлинк"
for _file in \
config parser.sh start-stop.sh uninstall.sh unblock-list.txt; do
delete_file "${PRJ_DIR}/${_file}"
done
# https://unix.stackexchange.com/a/615900
if [ -d "${PRJ_DIR}" ] && \
[ "$(echo "${PRJ_DIR}/"*)" = "${PRJ_DIR}/*" ]; then
if rm -r "${PRJ_DIR}" 2>/dev/null; then
msg "Каталог \"${PRJ_DIR}\" удален."
else
error_msg "Не удалось удалить каталог \"${PRJ_DIR}\"."
fi
fi
printf "%s\n" "---" "Удаление завершено."
exit 0