From 0912f56a1b90c92dc8a588eb5947b61bfb1e7e19 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 28 Jul 2019 18:02:44 +0000 Subject: [PATCH] Autoinstall --- autoinstall.sh | 146 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 autoinstall.sh diff --git a/autoinstall.sh b/autoinstall.sh new file mode 100644 index 0000000..8b85a50 --- /dev/null +++ b/autoinstall.sh @@ -0,0 +1,146 @@ +#!/bin/bash + +# This script is meant for easy install Tuxbot using curl/wget +printf "Welcome to Tuxbot's installation guide.\n" +printf "\nLog file is in ~/.tuxinstall.log\n" +# Command checking +if (( $EUID != 0 )); then + printf "\n\nError : Please run this script as ROOT" + exit 0 +fi + +if ! [ -x "$(command -v git)" ]; then + printf "\n\nError : Git is not installed" + exit 0 +fi + +if ! [ -x "$(command -v pip3.7)" ]; then + printf "\n\nError : pip3.7 is not installed (using pip3.7 command)\nPlease install it to continue" + exit 0 +fi + +# Tuxbot directory answer +read -p "In which directory Tuxbot should be installed ? : [/srv/]" na +na=${na:-"/srv/"} + +# Cloning tuxbot USING GNOUS'S GIT MIRROR +printf "Cloning git repository, please wait... \n" & +git clone https://git.gnous.eu/gnouseu/tuxbot-bot $na/tuxbot-bot &> ~/.tuxinstall.log +sleep 1 + +printf "Tuxbot has been cloned to $na.\n" 5 50 +sleep 1 +printf "Installing pip modules, please wait...\n" 5 50 & +sleep 1 + +# Downloading PIP modules using pip3.7 cmd +pip3.7 install -U discord.py[voice] &> ~/.tuxinstall.log +cd $na/tuxbot-bot +pip3.7 install -r requirements.txt &> ~/.tuxinstall.log +sleep 1 + +printf "Tuxbot's python dependencies have been downloaded\n" +sleep 1 + +# Answers to generate config +function generateConfig { + DATE=`date +%Y-%m-%d` + read -p "Enter your Discord API Token : " cToken + read -p "Enter the bot client ID : " cID + read -p "Enter the log channel ID : " cLogID + read -p "Enter the main channel of your server : " cSrvID + read -p "What game tuxbot should display as playing (eg : 'Eat potatoes') : " cGame + read -p "What is you're discord user ID (for admin cmd) : " cAdmin + echo "------------" + read -p "MySQL's tuxbot user : " mSQLuser + read -p "MySQL's tuxbot password : " mSQLpass + read -p "MySQL's tuxbot database name : " mSQLdb + echo """ +#Generated by Tuxbot install script +#$DATE +token = \"$cToken\" +client_id = \"$cID\" +log_channel_id = \"$cLogID\" +main_server_id = \"$cSrvID\" +game = \"$cGame\" +authorized_id = [\"$cAdmin\"] +prefix = [\".\"] +description = '.' +mysql = { + \"host\": \"localhost\", + \"username\": \"$mSQLuser\", + \"password\": \"$mSQLpass\", + \"dbname\": \"$mSQLdb\" +} +fonts = { + \"normal\": \"NotoSansCJK-Regular.ttc\", + \"bold\": \"NotoSansCJK-Bold.ttc\" +} +""" &> $na/tuxbot-bot/config.py +} + +printf "Do you want to generate config file ?\n1 - Yes (selected)\n2 - No\n" +read -p "(1-2) : " initConf +initConf=${initConf:-"1"} +case $initConf in + 1) generateConfig;; +esac + +#Non login user +echo "Adding tuxbot non-login user..." +useradd -M tuxbot +sleep 1 + +#Chown all perms to the non login user +echo "Fixing permissions..." +chown tuxbot:tuxbot -R $na/tuxbot-bot/ +sleep 1 + +#Create the service file +echo "Adding Tuxbot service & start it..." +echo """[Unit] +Description=Tuxbot, a discord bot +#After=network.target + +[Service] +Type=simple +User=tuxbot + +Restart=on-failure +Restart=always +RestartSec=1 + +WorkingDirectory=$na/tuxbot-bot/ +ExecStart=/usr/bin/env python3.7 $na/tuxbot-bot/bot.py + +StandardOutput=file:/var/log/tuxbot.log + +[Install] +WantedBy=multi-user.target +""" &> /lib/systemd/system/tuxbot.service +systemctl daemon-reload +systemctl start tuxbot +sleep 1 +echo "Activation of tuxbot at startup..." +sleep 1 +systemctl enable tuxbot + +#End message +echo """ + + +Tuxbot should be correctly installed. +Please check if all is good by execute : +systemctl status tuxbot +And .ping command in discord. + +Configuration file is $na/tuxbot-bot/config.py +Main tuxbot directory is $na/tuxbot-bot/ + +Any question ? => Make an issue on github + +https://git.gnous.eu/gnouseu/tuxbot-bot +https://github.com/outout14/tuxbot-bot + + +"""