From 447695768e2a342627d94ff05e5a032362a31724 Mon Sep 17 00:00:00 2001 From: poikilos <7557867+poikilos@users.noreply.github.com> Date: Sun, 4 Feb 2018 22:58:27 -0500 Subject: [PATCH] text and data output improvements in some scripts --- README.md | 9 +++++++++ etc/change_hardcoded_world_name_first/mts-ENLIVEN | 15 +++++++++------ mtsenliven.py | 6 +++++- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 60ce6ce..4e88d0e 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,13 @@ ENLIVEN is a subgame for minetest with the goals of providing immersion and less * trm_pyramids * see also EnlivenMinetest/etc/game-install-enliven-testing.sh +#### Shell Script Deprecation Process +##### Goals +* Remove anything running as root, by running as user in web server group + +##### Finished +* etc/change_hardcoded_world_name_first/mts-ENLIVEN deprecated by mtsenliven.py + The [ENLIVEN project](https://github.com/expertmm/EnlivenMinetest) (aka EnlivenMinetest) includes tools for installing and maintaining the server and client for internet and LAN use, and now includes the mtanalyze (formerly minetest-chunkymap) project which includes many tools including chunkymap. The server and client are just the Minetest server and client repackaged (or just web installer scripts in the case of the server), and therefore 100% compatible with other copies of Minetest server and client of the same version--including using other subgames, which client will download from servers as usual. DISCLAIMERS: @@ -64,6 +71,8 @@ Otherwise just install everything EXCEPT cme_to_spawners & tsm_pyramids_to_spawn * The installer script changes owner and group for ENLIVEN's world.mt and world.mt.1st if present to $USER * The included minetest.conf recommended for your clients includes the line enable_local_map_saving = true, which will cache the world locally on their machines. You can feel free to change that according to your preference. +## Changes to minetestmapper-numpy +* fix exception while trying to recover from exception (see `Could not finish writing r`) ## Changes: (2018-02-03) diff --git a/etc/change_hardcoded_world_name_first/mts-ENLIVEN b/etc/change_hardcoded_world_name_first/mts-ENLIVEN index 3347639..cb801e7 100755 --- a/etc/change_hardcoded_world_name_first/mts-ENLIVEN +++ b/etc/change_hardcoded_world_name_first/mts-ENLIVEN @@ -15,12 +15,15 @@ fi # exit 1 mts=minetestserver if [ ! -f "`command -v minetestserver`" ]; then - mts=$HOME/minetest/bin/minetestserver + try_path="$HOME/minetest/bin/minetestserver" + if [ -f "$try_path" ]; then + mts="$try_path" + fi fi -#BROKEN: screen -t MinetestServer minetestserver --gameid minetest_next --draworigin --drawplayers --world FCAWorldMTNext -#BROKEN: screen -t MinetestServer minetestserver --gameid ENLIVEN --worldname FCAGameAWorld -#NOTE: if only title is set, screen -x must be used to resume, so use -S to resume with -r -#screen -S MinetestServer minetestserver --gameid ENLIVEN --worldname FCAGameAWorld -#screen -S MinetestServer /home/owner/minetest/bin/minetestserver --gameid ENLIVEN --worldname FCAGameAWorld +# BROKEN: screen -t MinetestServer minetestserver --gameid minetest_next --draworigin --drawplayers --world FCAWorldMTNext +# BROKEN: screen -t MinetestServer minetestserver --gameid ENLIVEN --worldname FCAGameAWorld +# NOTE: if only title is set, screen -x must be used to resume, so use -S to resume with -r +# screen -S MinetestServer minetestserver --gameid ENLIVEN --worldname FCAGameAWorld +# screen -S MinetestServer /home/owner/minetest/bin/minetestserver --gameid ENLIVEN --worldname FCAGameAWorld screen -S MinetestServer $mts --gameid ENLIVEN --worldname FCAGameAWorld diff --git a/mtsenliven.py b/mtsenliven.py index 804c8a8..7a73cb9 100644 --- a/mtsenliven.py +++ b/mtsenliven.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 + +# runs minetestserver using the paths defined by minetestinfo + import os from mtanalyze.minetestinfo import * import subprocess, signal @@ -36,5 +39,6 @@ while True: if output == '' and process.poll() is not None: break if output: - print(output.strip()) + # output is bytes + print(output.decode("utf-8").strip()) # works on python2 or 3 rc = process.poll()