Import LinuxCNC source tree
This commit is contained in:
139
scripts/rip-environment.in
Normal file
139
scripts/rip-environment.in
Normal file
@@ -0,0 +1,139 @@
|
||||
#!/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., 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
|
||||
|
||||
# This evaluates to [ "yes" = "yes" ], which is fine.
|
||||
# shellcheck disable=SC2050
|
||||
if [ "yes" != "@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
|
||||
|
||||
LINUXCNC_RIP_FLAG="True"; export LINUXCNC_RIP_FLAG
|
||||
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/build/man:"$(manpath)"
|
||||
else
|
||||
MANPATH=$EMC2_HOME/docs/build/man:/usr/local/man:/usr/local/share/man:/usr/share/man
|
||||
fi
|
||||
else
|
||||
MANPATH=$EMC2_HOME/docs/build/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[0]}" -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) mapfile -t COMPREPLY < <(compgen -o plusdirs -f -X '!*.ngc' -- "$2") ;;
|
||||
*) mapfile -t 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
|
||||
Reference in New Issue
Block a user