#!/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 # # 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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" GLADE_ICON_THEME_PATH=$EMC2_HOME/share/glade/pixmaps:"$GLADE_ICON_THEME_PATH" export GLADE_ICON_THEME_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_SEARCH_PATH" ]; then GLADE_CATALOG_SEARCH_PATH=$EMC2_HOME/lib/python/gladevcp else GLADE_CATALOG_SEARCH_PATH=$EMC2_HOME/lib/python/gladevcp:"$GLADE_CATALOG_SEARCH_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_SEARCH_PATH if $as_command; then exec "$@"; fi