]>
us-delaporte.pagekite.me Git - dotfiles.git/blob - invoke/minetest/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"
14 link_to
= f
"{home}/.var/app/net.minetest.Minetest/.minetest"
16 # link_to = f"{home}/.minetest/"
20 result
= c
.run('which minetest')
25 print("Installing...")
26 # result = c.run('which minetest')
28 c
.run("sudo apt install flatpak")
29 c
.run("sudo apt install gnome-software-plugin-flatpak")
30 c
.run("flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo")
31 c
.run("flatpak install flathub net.minetest.Minetest -y")
32 result
= c
.run('which minetest')
33 print(f
"MineTest installed at {result.stdout}")
34 print("To run: flatpak run net.minetest.Minetest")
38 if not os
.path
.isdir(dir):
39 print(f
"No backups found at {dir}")
41 print(f
"Will restore MineTest backup from {dir}")
43 world_folder
= f
"{home}/minetest/worlds"
44 c
.run(f
"mkdir -p {world_folder}")
45 print("Restoring backed up worlds...")
46 c
.run(f
"mv {dir}/* {world_folder}")
49 # DONT - flatpak hates symlinks
51 # c.run(f"ls -al {link_to}")
52 if os
.path
.isdir(link_to
):
53 print("Moving existing files...")
54 c
.run(f
"mv {link_to} {easy_dir}")
55 if not os
.path
.isdir(easy_dir
):
56 raise ValueError(f
"{easy_dir} not found.")
57 if os
.path
.exists(link_to
):
58 print(f
"Doing nothing. {link_to} exists.")
59 if os
.path
.isdir(easy_dir
) and not os
.path
.exists(link_to
):
61 c
.run(f
"ln -s {easy_dir} {link_to}")
62 # c.run(f"ls -al {link_to}")
66 print(f
"+ Minetest data assumed to be at {link_to}")
67 print(f
"+ Easy folder assumed to be {easy_dir}")
69 c
.run(f
"ls -ald {link_to} | grep minetest")
74 print(f
"+ List Games ---")
75 cmd
= f
"{run_mt} --gameid list"
84 print(f
"+ List Worlds ---")
85 cmd
= f
"{run_mt} --gameid minetest --worldlist path"
91 cmd
= f
"{run_mt} --version"
95 def serve(c
, world
="SurfaceWorld"):
96 cmd
= f
"{run_mt} --gameid minetest --server --worldname {world}"
100 def bkmod(c
, name
=None):
101 '''Save the current set of mods and create an empty mod directory.'''
103 name
= datetime
.datetime
.now().strftime("%Y%h%d%H%M")
104 c
.run(f
"mv {mod_dir} {root}/mods_{name}")
105 c
.run(f
"mkdir -p {mod_dir}")
110 '''Restore a backed up set of mods.'''
111 bk
= datetime
.datetime
.now().strftime("%Y%h%d%H%M")
112 c
.run(f
"mv {mod_dir} {root}/mods_{bk}")
113 c
.run(f
"mv {root}/mods_{name} {mod_dir}")