]>
apps.delaporte.us Git - dotfiles.git/blob - invoke/luanti/tasks.py
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"
15 link_to
= f
"{home}/.var/app/net.minetest.Minetest/.minetest"
17 # link_to = f"{home}/.minetest/"
21 result
= c
.run('which minetest')
26 print("Installing...")
27 # result = c.run('which minetest')
29 c
.run("sudo apt install flatpak")
30 c
.run("sudo apt install gnome-software-plugin-flatpak")
31 c
.run("flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo")
32 c
.run("flatpak install flathub net.minetest.Minetest -y")
33 result
= c
.run('which minetest')
34 print(f
"MineTest installed at {result.stdout}")
35 print("To run: flatpak run net.minetest.Minetest")
39 if not os
.path
.isdir(dir):
40 print(f
"No backups found at {dir}")
42 print(f
"Will restore MineTest backup from {dir}")
44 world_folder
= f
"{home}/minetest/worlds"
45 c
.run(f
"mkdir -p {world_folder}")
46 print("Restoring backed up worlds...")
47 c
.run(f
"mv {dir}/* {world_folder}")
50 # DONT - flatpak hates symlinks
52 # c.run(f"ls -al {link_to}")
53 if os
.path
.isdir(link_to
):
54 print("Moving existing files...")
55 c
.run(f
"mv {link_to} {easy_dir}")
56 if not os
.path
.isdir(easy_dir
):
57 raise ValueError(f
"{easy_dir} not found.")
58 if os
.path
.exists(link_to
):
59 print(f
"Doing nothing. {link_to} exists.")
60 if os
.path
.isdir(easy_dir
) and not os
.path
.exists(link_to
):
62 c
.run(f
"ln -s {easy_dir} {link_to}")
63 # c.run(f"ls -al {link_to}")
67 print(f
"+ Minetest data assumed to be at {link_to}")
68 print(f
"+ Easy folder assumed to be {easy_dir}")
70 c
.run(f
"ls -ald {link_to} | grep minetest")
75 print(f
"+ List Games ---")
76 cmd
= f
"{run_mt} --gameid list"
85 print(f
"+ List Worlds ---")
86 cmd
= f
"{run_mt} --gameid minetest --worldlist path"
92 cmd
= f
"{run_mt} --version"
96 def serve(c
, world
="SurfaceWorld"):
97 cmd
= f
"{run_mt} --gameid minetest --server --worldname {world}"
101 def bkmod(c
, name
=None):
102 '''Save the current set of mods and create an empty mod directory.'''
104 name
= datetime
.datetime
.now().strftime("%Y%h%d%H%M")
105 c
.run(f
"mv {mod_dir} {root}/mods_{name}")
106 c
.run(f
"mkdir -p {mod_dir}")
111 '''Restore a backed up set of mods.'''
112 if len(os
.listdir(f
"{mod_dir}")) != 0:
113 bk
= datetime
.datetime
.now().strftime("%Y%h%d%H%M")
114 print(f
"Backed up non-emtpy mod dir to mods_{bk}.")
115 c
.run(f
"mv {mod_dir} {root}/mods_{bk}")
117 print("Removing empty mod dir.")
118 c
.run(f
"mkdir -p {mod_dir}")
119 c
.run(f
"mv {root}/mods_{name}/* {mod_dir}/")
120 print(f
"mods_{name} restored to mods")
124 c
.run(f
"ls {root}/mods")
129 c
.run(f
"ls {root}/mods/")
132 def logs(c
, lines
=20):
133 '''Output some logs'''
134 c
.run(f
"tail -n {lines} {root}/debug.txt")