summaryrefslogtreecommitdiffhomepage
path: root/midipix.sh
diff options
context:
space:
mode:
Diffstat (limited to 'midipix.sh')
-rwxr-xr-xmidipix.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/midipix.sh b/midipix.sh
new file mode 100755
index 00000000..b6b84097
--- /dev/null
+++ b/midipix.sh
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+MIDIPIX_PATH_DEFAULTS="/c/Midipix /z";
+
+if [ "${1}" = -h ]; then
+ echo "usage: $0 [drive_letter [dirname]]";
+ exit 1;
+elif [ ${#} -eq 0 ]; then
+for MIDIPIX_PATH in ${MIDIPIX_PATH_DEFAULTS}; do
+ [ -d /cygdrive${MIDIPIX_PATH} ] || continue;
+ MIDIPIX_DRIVE=${MIDIPIX_PATH#/};
+ MIDIPIX_DRIVE=${MIDIPIX_DRIVE%%/*};
+ MIDIPIX_PNAME=${MIDIPIX_PATH#/${MIDIPIX_DRIVE}};
+ MIDIPIX_PNAME=${MIDIPIX_PNAME#/};
+ break;
+done;
+else
+ MIDIPIX_DRIVE="${1}"; MIDIPIX_PNAME="${2}";
+ if [ "${MIDIPIX_DRIVE#*[ ]*}" != "${MIDIPIX_DRIVE}" ]\
+ || [ "${MIDIPIX_PNAME#*[ ]*}" != "${MIDIPIX_PNAME}" ]; then
+ echo "Error: drive_letter/dirname must not contain SP (\` ') or VT (\`\\\t') characters.";
+ exit 1;
+ fi;
+fi;
+MIDIPIX_PATH=/${MIDIPIX_DRIVE}${MIDIPIX_PNAME:+/${MIDIPIX_PNAME}};
+if [ ! -d /cygdrive${MIDIPIX_PATH} ]; then
+ echo "Error: Midipix path non-existent or invalid (\`${MIDIPIX_PATH}'.)";
+ exit 1;
+else
+ if [ -f /cygdrive${MIDIPIX_PATH}/bin/libpsxscl.log ]; then
+ echo Found libpsxscl.log, copying to /cygdrive${MIDIPIX_PATH}/bin/libpsxscl.last.
+ cp /cygdrive${MIDIPIX_PATH}/bin/libpsxscl.log \
+ /cygdrive${MIDIPIX_PATH}/bin/libpsxscl.last;
+ fi;
+ echo "Midipix drive letter.....: ${MIDIPIX_DRIVE}";
+ echo "Midipix pathname.........: ${MIDIPIX_PNAME}";
+ echo "Absolute Midipix pathname: ${MIDIPIX_PATH}";
+ echo --------------------------------------------------------
+ echo WARNING: The cygdrive path prefix will be changed to /
+ echo whilst the Midipix shell window is running. It will be
+ echo reset to its original value of /cygdrive after it exits.
+ echo --------------------------------------------------------
+ mintty -h always -e /bin/sh -c "
+ set -o errexit; stty raw -echo;
+ mount --change-cygdrive-prefix /;
+ cd ${MIDIPIX_PATH}/native/bin;
+ export PATH=${MIDIPIX_PATH}/native/bin:${MIDIPIX_PATH}/native/lib;
+ ./ntctty.exe -e chroot //${MIDIPIX_PATH#/}/native /bin/bash";
+ echo --------------------------------------------------------
+ echo Resetting cygdrive path prefix to /.
+ echo --------------------------------------------------------
+ mount --change-cygdrive-prefix /cygdrive;
+fi;