examples/linuxcnc-demo/run-linuxcnc-demo.sh
#!/bin/sh

die()
{
	echo "$*" >&2
	exit 1
}

usage()
{
	echo "Usage: run-linuxcnc-demo.sh [/path/to/linuxcnc]"
	echo
	echo " /path/to/linuxcnc: Path to 'linuxcnc' start script"
}

if [ $# -ge 1 ] && [ "$1" = "-h" -o "$1" = "--help" ]; then
	usage
	exit 0
fi
if [ $# -eq 0 ]; then
	linuxcnc="linuxcnc"
elif [ $# -eq 1 ]; then
	linuxcnc="$1"
else
	usage
	exit 1
fi


# basedir = directory where this script lives in
basedir="$(dirname "$0")"
[ "$(echo "$basedir" | cut -c1)" = '/' ] || basedir="$PWD/$basedir"

# rootdir = root of the awlsim repository
rootdir="$basedir/../.."

[ -x "$rootdir/awlsim-linuxcnc-hal" ] || die "awlsim-linuxcnc-hal not found"

cleanup()
{
	rm -f "/tmp/linuxcnc-demo.ngc"
}

cleanup
trap cleanup EXIT
cp "$basedir/linuxcnc-demo.ngc" /tmp/ || die "Failed to copy linuxcnc-demo.ngc"

# Start LinuxCNC
(
	cd "$basedir" || die "Failed to 'cd $basedir'"
	PATH="$rootdir/:$PATH"\
	PYTHONPATH="$rootdir/:$PYTHONPATH"\
		"$linuxcnc" "$basedir/linuxcnc-demo.ini" ||\
		die "LinuxCNC exited with an error"
)
