]>
apps.delaporte.us Git - dotfiles.git/blob - invoke/luanti/tasks.py
14636ade9598e16fa3eb51242407d1cb20e5349f
1 from invoke
import task
6 home
= os
.path
.expanduser('~')
7 flat_pak_root
= f
"{home}/.var/app/net.minetest.Minetest"
8 root
= f
"{flat_pak_root}/.minetest"
9 mod_dir
= f
"{root}/mods"
10 easy_dir
= f
"{home}/minetest/"
11 run_mt
= f
"flatpak run net.minetest.Minetest"
12 world_dir
= f
"{root}/worlds"
13 scripts
= f
"{home}/ansible/luanti"
16 link_to
= f
"{home}/.var/app/net.minetest.Minetest/.minetest"
18 # link_to = f"{home}/.minetest/"
22 result
= c
.run('which minetest')
27 print("Installing...")
28 # result = c.run('which minetest')
30 c
.run("sudo apt install flatpak")
31 c
.run("sudo apt install gnome-software-plugin-flatpak")
32 c
.run("flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo")
33 c
.run("flatpak install flathub net.minetest.Minetest -y")
34 result
= c
.run('which minetest')
35 print(f
"MineTest installed at {result.stdout}")
36 print("To run: flatpak run net.minetest.Minetest")
40 if not os
.path
.isdir(dir):
41 print(f
"No backups found at {dir}")
43 print(f
"Will restore MineTest backup from {dir}")
45 world_folder
= f
"{home}/minetest/worlds"
46 c
.run(f
"mkdir -p {world_folder}")
47 print("Restoring backed up worlds...")
48 c
.run(f
"mv {dir}/* {world_folder}")
51 # DONT - flatpak hates symlinks
53 # c.run(f"ls -al {link_to}")
54 if os
.path
.isdir(link_to
):
55 print("Moving existing files...")
56 c
.run(f
"mv {link_to} {easy_dir}")
57 if not os
.path
.isdir(easy_dir
):
58 raise ValueError(f
"{easy_dir} not found.")
59 if os
.path
.exists(link_to
):
60 print(f
"Doing nothing. {link_to} exists.")
61 if os
.path
.isdir(easy_dir
) and not os
.path
.exists(link_to
):
63 c
.run(f
"ln -s {easy_dir} {link_to}")
64 # c.run(f"ls -al {link_to}")
68 print(f
"+ Minetest data assumed to be at {link_to}")
69 print(f
"+ Easy folder assumed to be {easy_dir}")
71 c
.run(f
"ls -ald {link_to} | grep minetest")
76 print(f
"+ List Games ---")
77 cmd
= f
"{run_mt} --gameid list"
86 print(f
"+ List Worlds ---")
87 cmd
= f
"{run_mt} --gameid minetest --worldlist path"
93 cmd
= f
"{run_mt} --version"
97 def serve(c
, world
="SurfaceWorld"):
98 cmd
= f
"{run_mt} --gameid minetest --server --worldname {world}"
102 def bkmod(c
, name
=None):
103 '''Save the current set of mods and create an empty mod directory.'''
105 name
= datetime
.datetime
.now().strftime("%Y%h%d%H%M")
106 c
.run(f
"mv {mod_dir} {root}/mods_{name}")
107 c
.run(f
"mkdir -p {mod_dir}")
112 '''Restore a backed up set of mods.'''
113 if len(os
.listdir(f
"{mod_dir}")) != 0:
114 bk
= datetime
.datetime
.now().strftime("%Y%h%d%H%M")
115 print(f
"Backed up non-emtpy mod dir to mods_{bk}.")
116 c
.run(f
"mv {mod_dir} {root}/mods_{bk}")
118 print("Removing empty mod dir.")
119 c
.run(f
"mkdir -p {mod_dir}")
120 c
.run(f
"mv {root}/mods_{name}/* {mod_dir}/")
121 print(f
"mods_{name} restored to mods")
125 c
.run(f
"ls {root}/mods")
130 c
.run(f
"ls {root}/mods/")
133 def logs(c
, lines
=20):
134 '''Output some logs'''
135 c
.run(f
"tail -n {lines} {root}/debug.txt")
139 stopped
= input("Is the server stopped?")
141 print("so go stop the server...")
143 print("okay...backing up.")
144 c
.run(f
"{scripts}/do_luanti.sh {scripts}/backup.sh")
145 c
.run(f
"{scripts}/check_db.sh")
149 c
.run(f
"{scripts}/check_db.sh")