Provide the LinuxCNC version number in the new, rebranded environment variable name (LINUXCNCVERSION), while still keeping the old un-rebranded variable (EMC2VERSION) around until 2.7+1. Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
135 lines
4.4 KiB
Bash
135 lines
4.4 KiB
Bash
#!/bin/bash
|
|
# Execute this file in the context of your shell, such as with
|
|
# . @EMC2_HOME@/scripts/rip-environment
|
|
# and your shell environment will be properly configured to run commands like
|
|
# halcompile, halcmd, halrun, iosh, and python with the emc modules available.
|
|
#
|
|
# Alternately, use it as a wrapper to invoke a linuxcnc command that requires
|
|
# the environment to be set:
|
|
# @EMC2_HOME@/scripts/rip-environment latency-test
|
|
#
|
|
# Copyright 2006, 2007, 2008, 2009, 2014 Jeff Epler <jepler@unpythonic.net>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
case "$0" in
|
|
rip-environment|*/rip-environment)
|
|
as_command=true
|
|
if [ $# -eq 0 ]; then
|
|
cat <<-EOF
|
|
This script can be used in one of two ways.
|
|
|
|
It can be loaded in the context of your shell, by executing
|
|
. $0
|
|
after this, commands like 'linuxcnc', 'halrun' and so on refer to the
|
|
version in this directory, instead of to an installed version of
|
|
linuxcnc (if any)
|
|
|
|
Second, it can be used to run a command in this directory without
|
|
modifying the environment of the calling shell:
|
|
$0 command...
|
|
such as
|
|
$0 halrun foo.hal
|
|
$0 linuxcnc configs/.../foo.ini
|
|
EOF
|
|
exit 1
|
|
fi ;;
|
|
*) as_command=false
|
|
esac
|
|
|
|
if ! test "xyes" = "x@RUN_IN_PLACE@"; then
|
|
echo "This script is only useful on run-in-place systems."
|
|
return
|
|
fi
|
|
|
|
case "$PATH" in
|
|
@EMC2_BIN_DIR@:*|*:@EMC2_BIN_DIR@:*)
|
|
if ! $as_command; then
|
|
echo "This script only needs to be run once per shell session."
|
|
return
|
|
fi ;;
|
|
esac
|
|
|
|
EMC2_HOME=@EMC2_HOME@; export EMC2_HOME
|
|
EMC2VERSION="@EMC2VERSION@"; export EMC2VERSION
|
|
LINUXCNCVERSION="@EMC2VERSION@"; export LINUXCNCVERSION
|
|
LINUXCNC_NCFILES_DIR="@EMC2_NCFILES_DIR@"; export LINUXCNC_NCFILES_DIR
|
|
LINUXCNC_EMCSH=@WISH@; export LINUXCNC_EMCSH
|
|
PATH=@EMC2_BIN_DIR@:$EMC2_HOME/scripts:$EMC2_HOME/tcl:"$PATH"
|
|
|
|
if [ -z "$TCLLIBPATH" ]; then
|
|
TCLLIBPATH=$EMC2_HOME/tcl
|
|
else
|
|
TCLLIBPATH=$EMC2_HOME/tcl:$TCLLIBPATH
|
|
fi
|
|
|
|
if [ -z "$LD_LIBRARY_PATH" ]; then
|
|
LD_LIBRARY_PATH=$EMC2_HOME/lib
|
|
else
|
|
LD_LIBRARY_PATH=$EMC2_HOME/lib:"$LD_LIBRARY_PATH"
|
|
fi
|
|
|
|
if [ -z "$PYTHONPATH" ]; then
|
|
PYTHONPATH=$EMC2_HOME/lib/python
|
|
else
|
|
PYTHONPATH=$EMC2_HOME/lib/python:"$PYTHONPATH"
|
|
fi
|
|
|
|
if [ -z "$MANPATH" ]; then
|
|
if type -path manpath > /dev/null 2>&1; then
|
|
MANPATH=$EMC2_HOME/docs/man:"$(manpath)"
|
|
else
|
|
MANPATH=$EMC2_HOME/docs/man:/usr/local/man:/usr/local/share/man:/usr/share/man
|
|
fi
|
|
else
|
|
MANPATH=$EMC2_HOME/docs/man:"$MANPATH"
|
|
fi
|
|
|
|
if [ -z "$GLADE_CATALOG_PATH" ]; then
|
|
GLADE_CATALOG_PATH=$EMC2_HOME/lib/python/gladevcp
|
|
else
|
|
GLADE_CATALOG_PATH=$EMC2_HOME/lib/python/gladevcp:"$GLADE_CATALOG_PATH"
|
|
fi
|
|
|
|
if ! $as_command; then
|
|
# TODO: if these completion directives give trouble for any versions
|
|
# of bash actively in use, protect them with checks of BASH_VERSINFO
|
|
if [ $BASH_VERSINFO -eq 2 ]; then
|
|
complete -o dirnames -f -X '!*.ini' emc axis mdi
|
|
complete -o dirnames -f -X '!*.hal' halrun halcmd
|
|
complete -W 'start stop restart status' realtime
|
|
complete -C "halcmd -C" halcmd
|
|
else
|
|
_iningc () {
|
|
case "$3" in
|
|
*.ini) COMPREPLY=($(compgen -o plusdirs -f -X '!*.ngc' -- "$2")) ;;
|
|
*) COMPREPLY=($(compgen -o plusdirs -f -X '!*.ini' -- "$2"))
|
|
esac
|
|
}
|
|
complete -o plusdirs -F _iningc emc axis
|
|
complete -o plusdirs -f -X '!*.ini' mdi
|
|
complete -o plusdirs -f -X '!*.hal' halrun halcmd
|
|
complete -W 'start stop restart status' realtime
|
|
complete -C "halcmd -C" halcmd
|
|
fi
|
|
|
|
if [ -f $EMC2_HOME/src/Makefile ]; then
|
|
build () { make -C $EMC2_HOME/src "$@"; }
|
|
fi
|
|
fi
|
|
|
|
export PYTHONPATH MANPATH LD_LIBRARY_PATH TCLLIBPATH GLADE_CATALOG_PATH
|
|
|
|
if $as_command; then exec "$@"; fi
|