From: Edward Delaporte Date: Thu, 1 Jan 2026 21:37:23 +0000 (-0600) Subject: Add Minecraft invoke commands X-Git-Url: https://apps.delaporte.us/gitweb/dotfiles.git/commitdiff_plain/778cea90843d101c77b2dd454e4a020928cc6fe9?hp=4d0ecf2524a5a3a38c542b8b5b50f9229d9545be Add Minecraft invoke commands --- diff --git a/invoke/minecraft-remote/tasks.py b/invoke/minecraft-remote/tasks.py new file mode 100644 index 0000000..6f3dbd1 --- /dev/null +++ b/invoke/minecraft-remote/tasks.py @@ -0,0 +1,63 @@ +from invoke import task +from invoke import tasks +import os +from datetime import datetime as dt + +IP=os.environ.get('LUANTI_IP') +USER=os.environ.get('LUANTI_USER') +HOME=os.environ.get('LUANTI_HOME') +LOCAL_HOME=os.environ.get('HOME') + +TODAY = dt.now().strftime('%Y.%m.%d') + +USER_AT_IP=f'{USER}@{IP}' +SSH=f'ssh {USER}@{IP}' +SCP=f'scp {USER}@{IP}' + +DATE_TAR=f'{TODAY}.tar' + +# Minecraft +LOCAL_BACKUPS=f'{LOCAL_HOME}/backup/minecraft' + +MINECRAFT=f'{HOME}/Minecraft' + +dims = ['world', 'world_nether', 'world_the_end'] + +@task +def compress_world(c): + for world in dims: + c.run(f'{SSH} -C tar cf /tmp/{world}.{DATE_TAR} --directory={MINECRAFT} {world}') + c.run(f'{SSH} -C ls /tmp | grep .tar') + + +@task(compress_world) +def backup(c): + stopped = input("Is the server stopped?") + if(stopped != 'y'): + print("so go stop the server...") + exit() + c.run(f'mkdir -p {LOCAL_BACKUPS}') + + for world in dims: + c.run(f'{SCP}:/tmp/{world}.{DATE_TAR} {LOCAL_BACKUPS}') + + c.run(f'ls -lh {LOCAL_BACKUPS} | grep .tar') + verify_backup(c) + +@task +def verify_backup(c): + for world in dims: + c.run(f'tar tvf {LOCAL_BACKUPS}/{world}.{DATE_TAR} | tail') + c.run(f'tar tvf {LOCAL_BACKUPS}/{world}.{DATE_TAR} | wc') + +@task +def check_server(c): + result = c.run(f'ssh {USER}@{IP} -C screen -ls') + +@task(verify_backup) +def serve(c): + print(f"Attempting to connect to {IP}") + result = c.run(f'ssh {USER}@{IP} -C {SERVE}') + print(f'Server should now be running in a remote screen session.') + print(result) +