From bbed302db06b64d9b58ecf8d1c4ac0d6152e456d Mon Sep 17 00:00:00 2001 From: poikilos <7557867+poikilos@users.noreply.github.com> Date: Tue, 6 Jun 2017 22:40:31 +0000 Subject: [PATCH] working on installer for subgametest subgametest is a lightweight subgame for testing mods, with some extras for helping with development. --- install-subgametest.py | 172 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100755 install-subgametest.py diff --git a/install-subgametest.py b/install-subgametest.py new file mode 100755 index 0000000..9e094b3 --- /dev/null +++ b/install-subgametest.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python + +#region options +force_update_mtg_enable = False # first delete subgametest then remake +#endregion options + +try: + input = raw_input +except NameError: + pass + +try: + from git import Repo +except: + print("You do not have temperusb installed.\n" + "Please run the following commands in terminal\n" + " (if in Windows first cd C:\Python27 [or your Python folder],\n" + " but if in *nix-like environment first \"sudo su -\"\n" + " then if no pip, install python-pip/python2-pip/python3-pip" + "python -m pip install --upgrade pip\n" + "python -m pip install --upgrade pip wheel\n" + "python -m pip install gitpython\n") + #Possible commands: + # pkg install -y python3-pip python2-pip + # apt-get install -y python3-pip python2-pip + # pacman -Syuu python2-pip python-pip + #("Passing two --refresh or -y flags forces pacman to refresh + # all package lists even if they are considered to be up to + # date.") + print("") + input("press enter to close...") + exit(1) + + +import os +import shutil +import sys +from winclient.forwardfilesync import * + +profile_path = None +if 'HOME' in os.environ: # if os_name=="windows": + profile_path = os.environ['HOME'] +else: + profile_path = os.environ['USERPROFILE'] + +if not os.path.isdir(profile_path): + print("") + print("Failed to get existing home path--tried HOME & USERPROFILE") + print("") + input("press enter to close") + exit(2) + +USR_SHARE_MINETEST="/usr/share/games/minetest" +if not os.path.isdir(USR_SHARE_MINETEST): + if os.path.isdir("/usr/local/share/minetest"): + #IF git version is installed: + USR_SHARE_MINETEST="/usr/local/share/minetest" + if os.path.isdir("/usr/share/minetest"): + USR_SHARE_MINETEST="/usr/share/minetest" + + if not os.path.isdir(USR_SHARE_MINETEST): + print("Minetest could not be found in any known location. Try installing minetest or compiling from source or editing value of USR_SHARE_MINETEST in this script. Script ended early.") + input("press enter to close...") + exit(3) + + +MT_GAMES_DIR = os.path.join(USR_SHARE_MINETEST,"games") +MT_MYGAME_NAME = "subgametest" +MT_MYGAME_DIR=os.path.join(MT_GAMES_DIR,MT_MYGAME_NAME) + +folder_path = os.path.join(MT_GAMES_DIR, "minetest_game") + +if not os.path.isdir(folder_path): + print("Could not find \"" + folder_path + "\". Script ended early.") + input("press enter to close...") + exit(4) + +if force_update_mtg_enable: + shutil.rmtree(MT_MYGAME_DIR) + +#yes | cp -rf $MT_GAMES_DIR/minetest_game/* MT_MYGAME_DIR" +#sudo rsync -a $MT_GAMES_DIR/minetest_game/* MT_MYGAME_DIR" + +try: + #DOES update minetest_game, but does NOT delete extra mods: + update_tree(folder_path, MT_MYGAME_DIR) + print("Updated \"" + MT_MYGAME_DIR + "\"...") +except: + print(str(sys.exc_info())) + print("") + print("You must run " + __file__ + " as a user that can write to " + "\"" + MT_MYGAME_DIR + "\"") + print("") + input("press enter to close...") + exit(5) + +try: + #cd $HOME + #tmp_game_conf_path = os.path.join(profile_path, "game.conf") + outs = open(os.path.join(MT_MYGAME_DIR, "game.conf"), 'w') + outs.write("name = subgametest") + outs.close() +except: + print(str(sys.exc_info())) + print("") + print("You must run " + __file__ + " as a user that can write to " + "\"" + MT_MYGAME_DIR + "\"") + print("") + input("press enter to close...") + exit(6) +#cmd_string = "sudo mv -f game.conf \MT_MYGAME_DIR\"" +#shutil.move(tmp_game_conf_path, os.path.join(MT_MYGAME_DIR, "game.conf")) + +if os.path.isdir(os.path.join(MT_MYGAME_DIR,"mods")): + print("Copied subgame to " + MT_MYGAME_DIR) +else: + print("FAILED to copy subgame to " + MT_MYGAME_DIR) + input("press enter to close...") + exit(7) + + +MT_MYGAME_MODS_PATH = os.path.join(MT_MYGAME_DIR,"mods") +MTMOD_DEST_NAME = "minigamer" +MTMOD_DEST_PATH = os.path.join(MT_MYGAME_MODS_PATH, MTMOD_DEST_NAME) + +#if force_update_mtg_mods_enable: +# for sub_name in os.listdir(folder_path): +# sub_path = os.path.join(folder_path, sub_name) +# dst_path = os.path.join(MT_MYGAME_DIR, sub_name) +# if sub_name[:1]!="." and os.path.isdir(sub_path): +# if os.path.isdir(dst_path): +# shutil.rmtree(dst_path) + + +if not os.path.isdir(os.path.join(profile_path,"Downloads")): + os.makedirs(os.path.join(profile_path,"Downloads")) + +if not os.path.isdir(os.path.join(profile_path,"Downloads")): + print("Cannot create " + os.path.join(profile_path,"Downloads") + " so cannot continue.") + input("press enter to close...") + exit(8) + +mods_installed_list = list() + +TMP_DIR=os.path.join(os.path.join(profile_path,"Downloads"),"minetest-mods") + +if not os.path.isdir(TMP_DIR): + os.makedirs(TMP_DIR) + +if not os.path.isdir(TMP_DIR): + print("Cannot create " + TMP_DIR + " so cannot continue.") + input("press enter to close...") + exit(9) + + +print("") +print("") +print("Installed " + str(len(mods_installed_list)) + " mod(s).") +print("") +input("press enter to close...") +#cd $TMP_DIR +#git clone https://github.com/tenplus1/mobs_redo.git +#git clone https://github.com/tenplus1/mobs_animal.git +#git clone https://github.com/tenplus1/mobs_monster.git +#git clone https://github.com/tenplus1/mobs_npc.git +#but not: +#git clone https://github.com/expertmm/minetest-minigamer.git +#git clone https://github.com/expertmm/minetest-birthstones.git + +#Repo.clone_from(git_url, repo_dir) + +