summaryrefslogtreecommitdiff
path: root/omnibus/package-scripts/chefdk/postinst
diff options
context:
space:
mode:
Diffstat (limited to 'omnibus/package-scripts/chefdk/postinst')
-rwxr-xr-xomnibus/package-scripts/chefdk/postinst57
1 files changed, 57 insertions, 0 deletions
diff --git a/omnibus/package-scripts/chefdk/postinst b/omnibus/package-scripts/chefdk/postinst
new file mode 100755
index 0000000000..3257e2eef0
--- /dev/null
+++ b/omnibus/package-scripts/chefdk/postinst
@@ -0,0 +1,57 @@
+#!/bin/sh
+# WARNING: REQUIRES /bin/sh
+#
+# Post install configuration for Chef Development Kit
+#
+
+PROGNAME=`basename $0`
+INSTALLER_DIR=/opt/chefdk
+CONFIG_DIR=/etc/chef
+USAGE="usage: $0"
+
+error_exit()
+{
+ echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2
+ exit 1
+}
+
+is_darwin()
+{
+ uname -v | grep "^Darwin" 2>&1 >/dev/null
+}
+
+is_smartos()
+{
+ uname -v | grep "^joyent" 2>&1 >/dev/null
+}
+
+if is_smartos; then
+ PREFIX="/opt/local"
+elif is_darwin; then
+ PREFIX="/usr/local"
+ mkdir -p "$PREFIX/bin"
+else
+ PREFIX="/usr"
+fi
+
+# We test for the presence of /usr/bin/chef-client to know if this script succeeds,
+# so chef-client must appear as the last item here.
+binaries="chef chef-solo chef-apply chef-shell knife shef ohai berks chef-zero fauxhai foodcritic kitchen rubocop strain strainer chef-client"
+
+# rm -f before ln -sf is required for solaris 9
+for binary in $binaries; do
+ rm -f $PREFIX/bin/$binary
+done
+
+for binary in $binaries; do
+ ln -sf $INSTALLER_DIR/bin/$binary $PREFIX/bin || error_exit "Cannot link $binary to $PREFIX/bin"
+done
+
+# Ensure all files/directories in $INSTALLER_DIR are owned by root. This
+# has been fixed on new installs but upgrades from old installs need to
+# be manually fixed.
+chown -Rh 0:0 $INSTALLER_DIR
+
+echo "Thank you for installing Chef Development Kit!"
+
+exit 0