summaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2010-10-20 15:22:06 -0700
committerJames Turnbull <james@lovedthanlost.net>2010-11-10 05:30:17 +1100
commit9a3b5849c54c3f354670b5a912fd393f7010977e (patch)
treea7a2203133ef4093228cf4c6f1b72696fc41e0bd /ext
parentaad700802b9a82dd17dd3f7c7e2557c432ac2aad (diff)
downloadpuppet-9a3b5849c54c3f354670b5a912fd393f7010977e.tar.gz
puppet-9a3b5849c54c3f354670b5a912fd393f7010977e.tar.xz
puppet-9a3b5849c54c3f354670b5a912fd393f7010977e.zip
(#5062) Add envpuppet helper script to ext/
This script helps people quickly test different branches of various puppet related projects like facter, puppet-scaffold, puppet-dashboard, etc... It allows the user to simply clone puppet and start running different puppet version without installing puppet or any other setup costs.
Diffstat (limited to 'ext')
-rwxr-xr-xext/envpuppet80
1 files changed, 80 insertions, 0 deletions
diff --git a/ext/envpuppet b/ext/envpuppet
new file mode 100755
index 000000000..d921a19b8
--- /dev/null
+++ b/ext/envpuppet
@@ -0,0 +1,80 @@
+#! /bin/bash
+#
+# Jeff McCune <jeff@puppetlabs.com>
+# 2010-10-20
+#
+# Copyright (c) 2010, Puppet Labs
+# License: BSD 3-clause license
+#
+# This script provides a simple way to execute puppet and related tools
+# directly from a git clone of the upstream repositories. This allows you to
+# quickly switch branches and test different versions of code without much
+# friction.
+#
+# NOTE: There may be issues if puppet, facter, etc... are already installed
+# into RUBY's site_ruby directory. If you run into strange problems, make sure
+# the correct ruby libraries are being loaded...
+#
+# Sample Usage:
+# =============
+# cd ~/src
+# git clone git://github.com/puppetlabs/puppet.git
+# git clone git://github.com/puppetlabs/facter.git
+# pushd puppet
+# git checkout tags/2.6.1
+# popd
+# pushd facter
+# git checkout tags/1.5.8
+# export ENVPUPPET_BASEDIR=/home/jeff/src
+# envpuppet puppet --version
+# 2.6.1
+# envpuppet facter --version
+# 1.5.8
+
+set -e
+set -u
+
+if test -d puppet -o -d facter; then
+ echo " WARNING!"
+ echo " Strange things happen if puppet or facter are in the"
+ echo " current working directory"
+ echo " (import errors from ruby are a prime example)"
+ echo " WARNING!"
+ echo ""
+ echo "I suggest changing to ~ or /tmp or something..."
+ echo ""
+ echo "Sleeping 2 seconds."
+ echo ""
+ sleep 2
+fi
+
+# Set this to where you check out puppet and facter
+: ${ENVPUPPET_BASEDIR:="${HOME}/src"}
+
+# git://github.com/reductivelabs/puppet.git
+mypath="${ENVPUPPET_BASEDIR}/puppet/sbin:${ENVPUPPET_BASEDIR}/puppet/bin"
+myrubylib="${ENVPUPPET_BASEDIR}/puppet/lib"
+
+# git://github.com/reductivelabs/facter.git
+mypath="${mypath}:${ENVPUPPET_BASEDIR}/facter/bin"
+myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/facter/lib"
+
+# http://github.com/jamtur01/puppet-scaffold.git
+mypath="${mypath}:${ENVPUPPET_BASEDIR}/puppet-scaffold/bin"
+myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/puppet-scaffold/lib"
+
+# http://github.com/puppetlabs/puppet-module-tool.git
+# Also known as "pmt" Will become "puppet module"
+mypath="${mypath}:${ENVPUPPET_BASEDIR}/puppet-module-tool/bin"
+myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/puppet-module-tool/lib"
+
+# Use the existing environment, if present.
+# Default to no value to prevent unbound variable issues
+mypath="${mypath}:${PATH:-}"
+myrubylib="${myrubylib}:${RUBYLIB:-}"
+
+# Trim any trailing colons from the path list.
+export PATH="${mypath%%:}"
+export RUBYLIB="${myrubylib%%:}"
+
+exec "$@"