#!/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;