Implement Teamspeak module

This commit is contained in:
Marcel Schwarz 2020-03-21 22:29:07 +01:00
parent 35f70ad3b6
commit 14c58905b8
3 changed files with 36 additions and 1 deletions

View File

@ -5,13 +5,15 @@ from modules.install.ToolsInstaller import ToolsInstaller
from modules.swap.SwapModule import SwapModule from modules.swap.SwapModule import SwapModule
from modules.systemupdate.Systemupdate import Systemupdate from modules.systemupdate.Systemupdate import Systemupdate
from modules.vim.VimModule import VimModule from modules.vim.VimModule import VimModule
from modules.teamspeak.Teamspeak import Teamspeak
modules = { modules = {
"helloworld": HelloWorld().run, "helloworld": HelloWorld().run,
"install": ToolsInstaller, "install": ToolsInstaller,
"swap": SwapModule().run, "swap": SwapModule().run,
"update": Systemupdate().run, "update": Systemupdate().run,
"vim": VimModule().run "vim": VimModule().run,
"teamspeak": Teamspeak
} }
fire.Fire(modules) fire.Fire(modules)

3
modules/teamspeak/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
ts3_data
*.tar
*.gz

View File

@ -0,0 +1,30 @@
import subprocess
from os import path
import time
import re
class Teamspeak:
def start(self):
"""Starts a Teamspeak Server with docker-compose"""
show_creds = False if path.exists(path.join(path.dirname(__file__), "ts3_data")) else True
subprocess.run("docker-compose up -d", shell=True, cwd=path.dirname(__file__))
if show_creds:
logs = subprocess.check_output("docker-compose logs", shell=True, cwd=path.dirname(__file__)).decode("UTF-8")
while re.search(r"token", logs) is None:
time.sleep(2)
logs = subprocess.check_output("docker-compose logs", shell=True, cwd=path.dirname(__file__)).decode("UTF-8")
print("Server Query Admin Account: " + re.search(r"loginname=.*", logs).group(0))
print("Server Admin Token: " + re.search(r"token=(.*)", logs).group(1))
def stop(self):
"""Stops the Teamspeak Server with docker-compose"""
subprocess.run("docker-compose down -v", shell=True, cwd=path.dirname(__file__))
def pack_data(self, name="ts3_data.tar.gz"):
"""Pack all user data of the server started with this script as tar file"""
subprocess.run(f"tar -zcvf {name} ts3_data", shell=True, cwd=path.dirname(__file__))
def show_logs(self):
subprocess.run("docker-compose logs", shell=True, cwd=path.dirname(__file__))