summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xetc/midipix.sh46
1 files changed, 26 insertions, 20 deletions
diff --git a/etc/midipix.sh b/etc/midipix.sh
index cc168d18..78ebca91 100755
--- a/etc/midipix.sh
+++ b/etc/midipix.sh
@@ -1,24 +1,29 @@
-#!/bin/sh
-
-set -o noglob;
-if [ -z "${PATH##/bin:*}" \
--a -z "${PATH##*:/bin:*}" \
--a -z "${PATH##*:/bin}" ]; then
+#!/bin/sh -f
+# Prepend /bin to ${PATH} if it does not contain it.
+if [ -z "${PATH##/bin:*}" -a -z "${PATH##*:/bin:*}" -a -z "${PATH##*:/bin}" ]; then
export PATH="/bin${PATH:+:${PATH}}";
fi;
-while getopts m __; do
-case ${__} in
-m) MIDIPIX_DNAME_DIST=minipix; ;;
-*) echo "usage: $0 [-m] [Cygwin pathname to Midipix root]";
- echo " -m: use Minipix distribution"; exit 0;
-esac; done;
-if [ -n "${1}" ]; then
- MIDIPIX_PATH=$(cygpath -am "${1}"); cd ${MIDIPIX_PATH} || exit 1;
-else
- MIDIPIX_PATH=$(cygpath -am .);
+
+#
+# Process -h/${#} > 1. Set and cd into ${MIDIPIX_PATH} from either
+# ${1} or `native,' prepended w/ ${PWD}.
+if [ "x${1}" = "x-h" ]\
+|| [ ${#} -gt 1 ]; then
+ echo "usage: $0 [-h] [path]";
+ echo "path: absolute or relative Cygwin pathname to Midipix root, e.g. minipix or native.";
+ exit 0;
+fi;
+MIDIPIX_PATH="${1:-native}";
+if [ "${1#/}" = "${1}" ]; then
+ MIDIPIX_PATH="${PWD}/${MIDIPIX_PATH}";
fi;
+cd ${MIDIPIX_PATH} || exit 1;
+
+#
+# Log variables and backup the last libpsxscl.log to libpsxscl.last.
+# Launch chroot(1)ed bash(1) inside ntctty and mintty. Obtain and
+# log the PID of the ntctty process for convenience.
printf "%-35s: %s\n" "Absolute Midipix pathname" "${MIDIPIX_PATH}";
-printf "%-35s: %s\n" "Distribution name" "${MIDIPIX_DNAME_DIST:=native}";
if [ -f libpsxscl.log ]; then
echo Found libpsxscl.log, copying to libpsxscl.last.
if ! cp -p -- libpsxscl.log libpsxscl.last; then
@@ -26,13 +31,14 @@ if [ -f libpsxscl.log ]; then
fi;
fi;
if [ "$(uname -o)" = "Msys" ]; then
+ # MingW workaround (via Elieux.)
export MSYS2_ARG_CONV_EXCL="*";
fi;
mintty -h always -s 120,80 -e /bin/sh -c "
set -o errexit;
- env PATH=${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib \
- ${MIDIPIX_DNAME_DIST}/bin/ntctty.exe -e \
- ${MIDIPIX_DNAME_DIST}/bin/chroot ${MIDIPIX_DNAME_DIST} \
+ env PATH=${MIDIPIX_PATH}/lib \
+ bin/ntctty.exe -e \
+ bin/chroot . \
/bin/env PATH=/bin:/lib bash" &
sleep ${SLEEP_DELAY:=0.25};
printf "%-35s: %s\n" "ntctty PID" "$(ps -W | awk '$NF ~ /ntctty\.exe$/{print $1}')";