linux-tools/modules/teamspeak/Teamspeak.py

33 lines
1.5 KiB
Python
Raw Normal View History

2020-03-21 22:29:07 +01:00
import subprocess
from os import path
import time
import re
class Teamspeak:
"""Manage a Docker backed Teamspeak server"""
2020-03-21 22:29:07 +01:00
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):
"""show the logs of the running Teamspeak server"""
2020-03-21 22:29:07 +01:00
subprocess.run("docker-compose logs", shell=True, cwd=path.dirname(__file__))