summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xext/envpuppet59
1 files changed, 56 insertions, 3 deletions
diff --git a/ext/envpuppet b/ext/envpuppet
index d921a19b8..c794e6764 100755
--- a/ext/envpuppet
+++ b/ext/envpuppet
@@ -34,6 +34,38 @@
set -e
set -u
+if [[ "${1:-}" == "--help" ]]; then
+ cat <<EO_HELP
+This command reconfigures the environment once for development.
+It is designed to wrap around any other command, specifically puppet
+
+Jeff McCune <jeff@puppetlabs.com>
+2011-02-09
+
+Puppet should not be installed in site_ruby because all of \$LOAD_PATH
+is searched by puppet when loading libraries and the installed version
+will taint the development version
+
+The following enviornment variables configure the behavior of envpuppet
+
+ ENVPUPPET_BASEDIR=${HOME}/src
+ the base directory where puppet, facter, etc... live.
+
+ ENVPUPPET_BLEEDING=true Enables bleeding edge prototypes like
+ puppet-interfaces
+
+The PATH and RUBYLIB are the primary environment variables modified by
+the envpuppet script.
+
+If no arguments are given, the environment variables are printed to STDOUT
+allowing the output to be sourced. For example:
+
+ eval \$(envpuppet)
+
+EO_HELP
+ exit 0
+fi
+
if test -d puppet -o -d facter; then
echo " WARNING!"
echo " Strange things happen if puppet or facter are in the"
@@ -50,15 +82,23 @@ fi
# Set this to where you check out puppet and facter
: ${ENVPUPPET_BASEDIR:="${HOME}/src"}
+# Are we bleeding edge?
+: ${ENVPUPPET_BLEEDING:='false'}
-# git://github.com/reductivelabs/puppet.git
+# git://github.com/puppetlabs/puppet.git
mypath="${ENVPUPPET_BASEDIR}/puppet/sbin:${ENVPUPPET_BASEDIR}/puppet/bin"
myrubylib="${ENVPUPPET_BASEDIR}/puppet/lib"
-# git://github.com/reductivelabs/facter.git
+# git://github.com/puppetlabs/facter.git
mypath="${mypath}:${ENVPUPPET_BASEDIR}/facter/bin"
myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/facter/lib"
+if [[ "${ENVPUPPET_BLEEDING:-}" == "true" ]]; then
+ # git://github.com/puppetlabs/facter.git
+ mypath="${mypath}:${ENVPUPPET_BASEDIR}/puppet-interfaces/bin"
+ myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/puppet-interfaces/lib"
+fi
+
# http://github.com/jamtur01/puppet-scaffold.git
mypath="${mypath}:${ENVPUPPET_BASEDIR}/puppet-scaffold/bin"
myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/puppet-scaffold/lib"
@@ -73,8 +113,21 @@ myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/puppet-module-tool/lib"
mypath="${mypath}:${PATH:-}"
myrubylib="${myrubylib}:${RUBYLIB:-}"
+export ENVPUPPET_OLD_PATH="${PATH:-}"
+export ENVPUPPET_OLD_RUBYLIB="${RUBYLIB:-}"
+
# Trim any trailing colons from the path list.
export PATH="${mypath%%:}"
export RUBYLIB="${myrubylib%%:}"
-exec "$@"
+if [[ $# -eq 0 ]]; then
+ echo "export ENVPUPPET_OLD_PATH='${ENVPUPPET_OLD_PATH}'"
+ echo "export ENVPUPPET_OLD_RUBYLIB='${ENVPUPPET_OLD_RUBYLIB}'"
+ echo "export ENVPUPPET_BASEDIR='${ENVPUPPET_BASEDIR}'"
+ echo "export ENVPUPPET_BLEEDING='${ENVPUPPET_BLEEDING}'"
+ echo "export PATH='${PATH}'"
+ echo "export RUBYLIB='${RUBYLIB}'"
+else
+ exec "$@"
+fi
+