summaryrefslogtreecommitdiffhomepage
path: root/midipix.sh
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2016-06-15 16:01:06 +0000
committerLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2016-06-15 16:16:41 +0000
commit7927966d8799ccceeee04d1e9e7119f0cac65d7b (patch)
tree1ed6dafe26d90b7b9f712bcc2c220ceb16ed790d /midipix.sh
parentafcefa6fa131bbcca37337471be260e3f9f22bae (diff)
downloadmidipix_build-7927966d8799ccceeee04d1e9e7119f0cac65d7b.tar.bz2
midipix_build-7927966d8799ccceeee04d1e9e7119f0cac65d7b.tar.xz
Disable NLS for all packages minus the runtime components.
Followup to <2696b7e8fb2972e72fab7ca8b5a3ab87022814af>: - Restore src/process/_execve.c NT_SEC_IMAGE vs. NT_SEC_RESERVE patch for builds on lucio-vm.local. to allow for running Midipix from a network share. Move previous psxscl patches into psxscl.local@lucio-vm.local.patch. Prevent Irssi from using g_child_watch_add_full() when resolving hostnames for testing purposes as clone(2) is not currently implemented. Updated Create `Midipix mintty shell' shortcut.vbs: - Always update the shortcut file. - Launch sh(1) instead of Mintty (via Elieux.) - Obtain the pathname to Cygwin from the command line, defaulting to `C:\cygwin64'. Updated midipix.sh: - Automatically determine ${MIDIPIX_DRIVE} and ${MIDIPIX_PNAME} via cygpath(1) (via Elieux.) - Export MSYS2_ARG_CONV_EXCL="*" when running within Msys (via Elieux.) - Prepend `/bin' to ${PATH} if not present (via Elieux.) - Set and restore the previous cygdrive prefix. - Use /proc/cygdrive instead of /cygdrive (via Elieux.)
Diffstat (limited to 'midipix.sh')
-rwxr-xr-xmidipix.sh62
1 files changed, 36 insertions, 26 deletions
diff --git a/midipix.sh b/midipix.sh
index b6b84097..9a074174 100755
--- a/midipix.sh
+++ b/midipix.sh
@@ -1,45 +1,55 @@
#!/bin/sh
#
-MIDIPIX_PATH_DEFAULTS="/c/Midipix /z";
+prepend_path() {
+ local _pname _pname_prepend="${1}" IFS=":";
+ for _pname in ${PATH}; do
+ if [ "${_pname}" = "${_pname_prepend}" ]; then
+ return;
+ fi;
+ done; export PATH="${_pname_prepend}${PATH:+:${PATH}}";
+};
+
+prepend_path /bin;
if [ "${1}" = -h ]; then
- echo "usage: $0 [drive_letter [dirname]]";
- exit 1;
+ echo "usage: $0 [drive_letter [dirname]]"; exit 0;
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;
+ PWD_ABSOLUTE="$(cygpath -am .)" || exit 1;
+ MIDIPIX_DRIVE="${PWD_ABSOLUTE%:*}";
+ MIDIPIX_PNAME="${PWD_ABSOLUTE#${MIDIPIX_DRIVE}:}";
+ unset PWD_ABSOLUTE;
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
+UNAME_OS="$(uname -o)" || exit 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 3;
+fi;
+MIDIPIX_PATH=/${MIDIPIX_DRIVE}${MIDIPIX_PNAME:+/${MIDIPIX_PNAME#/}};
+MIDIPIX_PATH=${MIDIPIX_PATH%/};
+if [ ! -d /proc/cygdrive${MIDIPIX_PATH} ]; then
echo "Error: Midipix path non-existent or invalid (\`${MIDIPIX_PATH}'.)";
- exit 1;
+ exit 4;
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;
+ if [ -f /proc/cygdrive${MIDIPIX_PATH}/bin/libpsxscl.log ]; then
+ echo Found libpsxscl.log, copying to /proc/cygdrive${MIDIPIX_PATH}/bin/libpsxscl.last.
+ cp /proc/cygdrive${MIDIPIX_PATH}/bin/libpsxscl.log \
+ /proc/cygdrive${MIDIPIX_PATH}/bin/libpsxscl.last || exit 5;
fi;
+ OLD_CYGDRIVE_PREFIX="$(readlink /proc/cygdrive)" || exit 6;
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 reset to its previous value of ${OLD_CYGDRIVE_PREFIX} after it exits.
echo --------------------------------------------------------
+ if [ "${UNAME_OS}" = "Msys" ]; then
+ export MSYS2_ARG_CONV_EXCL="*";
+ fi;
mintty -h always -e /bin/sh -c "
set -o errexit; stty raw -echo;
mount --change-cygdrive-prefix /;
@@ -47,7 +57,7 @@ else
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 Resetting cygdrive path prefix to ${OLD_CYGDRIVE_PREFIX}.
echo --------------------------------------------------------
- mount --change-cygdrive-prefix /cygdrive;
+ mount --change-cygdrive-prefix "${OLD_CYGDRIVE_PREFIX}";
fi;