forked from AnonymousX1025/AnonXMusic
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup
More file actions
134 lines (111 loc) · 3.46 KB
/
Copy pathsetup
File metadata and controls
134 lines (111 loc) · 3.46 KB
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
#!/bin/bash
set -o pipefail
[ -n "$BASH_VERSION" ] || { echo "Run with bash"; exit 1; }
command -v sudo &>/dev/null || { echo "sudo is required"; exit 1; }
pprint() {
local msg="$1" c="$2" r="\033[0m"
case "$c" in
cred) c="\033[0;31m";; cgreen) c="\033[0;32m";;
cyellow) c="\033[0;33m";; cblue) c="\033[0;34m";;
cmagenta) c="\033[0;35m";; *) c="\033[0;35m";;
esac
printf "%b%b%b" "$c" "$msg" "$r"
}
update() {
pprint "\n\nUpdating system...\n" "cblue"
if sudo apt-get update -y &>/dev/null && sudo apt-get upgrade -y &>/dev/null; then
pprint "Done.\n\n" "cgreen"
else
pprint "Failed.\n\n" "cred"
fi
}
install_pkgs() {
missing=()
for pkg in "$@"; do
dpkg -s "$pkg" &>/dev/null || missing+=("$pkg")
done
if [ ${#missing[@]} -gt 0 ]; then
pprint "Installing: ${missing[*]}... " "cyellow"
if sudo apt-get install -y "${missing[@]}" &>/dev/null; then
pprint "Done.\n\n" "cgreen"
else
pprint "Failed.\n\n" "cred"
fi
else
pprint "All packages already installed.\n\n" "cgreen"
fi
}
install_deno() {
pprint "\n\nInstalling Deno...\n" "cblue"
if command -v deno &>/dev/null; then
pprint "Deno already installed.\n" "cgreen"
return
fi
if curl -fsSL https://deno.land/install.sh | sh; then
deno_path="$HOME/.deno/bin"
if ! grep -q 'DENO_INSTALL' "$HOME/.bashrc"; then
{
echo 'export DENO_INSTALL="$HOME/.deno"'
echo 'export PATH="$DENO_INSTALL/bin:$PATH"'
} >> "$HOME/.bashrc"
pprint "Deno path added to ~/.bashrc\n" "cyellow"
fi
export DENO_INSTALL="$HOME/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"
pprint "Deno installation complete.\n" "cgreen"
else
pprint "Deno installation failed.\n" "cred"
fi
}
install_uv() {
if ! command -v uv &>/dev/null; then
pprint "\nInstalling uv...\n" "cblue"
if curl -Ls https://astral.sh/uv/install.sh | sh; then
if ! grep -q '.local/bin' "$HOME/.bashrc"; then
echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$HOME/.bashrc"
fi
export PATH="$HOME/.local/bin:$PATH"
pprint "uv installed.\n" "cgreen"
else
pprint "uv installation failed.\n" "cred"
fi
fi
}
install_py() {
pprint "\n\nInstalling Python dependencies...\n"
if uv sync --frozen -q; then
pprint "Done.\n" "cgreen"
else
pprint "Failed (continuing...)\n" "cred"
fi
}
save_env_vars() {
pprint "\n\nProcessing your variables..." "cgreen"
[ -f .env ] && rm .env
cat >.env <<EOF
API_ID=$1
API_HASH=$2
BOT_TOKEN=$3
MONGO_URL=$4
LOGGER_ID=$5
SESSION=$6
OWNER_ID=$7
EOF
}
pprint "Welcome to the AnonXMusic Installation Setup\n\n" "cmagenta"
update
install_pkgs python3 python3-venv ffmpeg curl unzip
install_uv || exit 1
install_deno
install_py
pprint "\nAnonXMusic Installation Completed.\n" "cgreen"
pprint "\nEnter Your Values Below\n\n\n" "cmagenta"
read -rp "API ID: " api_id
read -rp "API HASH: " api_hash
read -rp "BOT TOKEN: " bot_token
read -rp "OWNER ID: " ownid
read -rp "MONGO URL: " mongo_db
read -rp "LOG GROUP ID: " logger
read -rp "STRING SESSION: " string_session
save_env_vars "$api_id" "$api_hash" "$bot_token" "$mongo_db" "$logger" "$string_session" "$ownid"
pprint "\nSetup complete! Start the bot using:\n\n bash start\n\n" "cgreen"