Files
linuxcncAllWasm/configs/apps/halrun/halrun.demo
2026-08-20 06:17:39 +08:00

68 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
prog=$(basename "$0")
thisfile=$(readlink -f "$0")
thisdir=$(dirname "$thisfile")
HALFILE="$thisdir"/help.hal
# Don't care if cd succeeds. Just so user can use halcmd 'save' to create a file in $HOME
cd || true
function popup () {
msg="$*"
wish <<EOF &
wm withdraw .
tk_messageBox \
-title "$prog" \
-message "$msg" \
-icon error \
-type ok
destroy .
EOF
} ;# popup
[ "$TERM" = "dumb" ] && TERM=xterm
[ -x "$(which "$COLORTERM")" ] && TERM=$COLORTERM
[ -z "$TERM" ] && TERM=xterm
# wip: xterm is well-behaved, some other terminals are not
# for now: force to xterm
TERM=xterm
REALTIME=$(linuxcnc_var REALTIME)
# make sure TERM uses the expected halrun (rip or install)
HALRUN=$(which halrun)
if [ -n "$debug" ] ; then
echo "COLORTERM=$COLORTERM"
echo "TERM=$TERM"
echo "HALRUN=$HALRUN"
echo "REALTIME=$REALTIME"
fi
if $REALTIME status >/dev/null ; then
msg="$prog: LinuxCNC is active"
echo "$msg"
popup "$msg"
exit 1
fi
# terminate any other halrun instance:
$HALRUN -U >/dev/null 2>&1
if [ "$TERM" = "xterm" ] ; then
$TERM -geometry 80x40 \
-sb \
-fg black -bg ivory2 \
-title "halrun (Use Ctrl-L-button, Ctrl_R-button for xterm options)" \
-e "echo Working_Directory=$(pwd);echo; $HALRUN -I $HALFILE"
else
$TERM -e "$HALRUN -I $HALFILE"
fi
# cleanup
halrun -U >/dev/null 2>&1
exit 0