Skip to content

Instantly share code, notes, and snippets.

@mkhl
Created August 6, 2010 22:32
Show Gist options
  • Save mkhl/512130 to your computer and use it in GitHub Desktop.
Save mkhl/512130 to your computer and use it in GitHub Desktop.
Wrapper script to run Maude from its directory tree.
#!/usr/bin/env bash
function search-prelude {
local prelude="prelude.maude"
for dir ; do
for file in "${dir}/${prelude}" "${dir}/maude/${prelude}" "${dir}/lib/maude/${prelude}" ; do
if [[ -f "${file}" ]]; then
echo -n "$(dirname "${file}")"
return 0
fi
done
done
return 1
}
function choose-maude {
local hwname="$(uname -m)"
local osname="$(uname -s)"
case "${hwname}" in
i*86) hwname="intel";;
esac
echo "maude.${hwname}${osname}"
}
MAUDE_EXEC="$(choose-maude)"
if [[ -z "$MAUDE_LIB" ]]; then
MAUDE_LIB="$(search-prelude "$(dirname $0)" "$(dirname $(dirname $0))")"
fi
if [[ -n "$MAUDE_LIB" ]]; then
for dir in $( (IFS=':'; set -- ${MAUDE_LIB}; echo "$@") ); do
if [[ -x "${dir}/${MAUDE_EXEC}" ]]; then
MAUDE_EXEC="${dir}/${MAUDE_EXEC}"
fi
done
fi
exec "${MAUDE_EXEC}" "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment