This repository has been archived by the owner on Jul 14, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 170
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #563 from chef/btm/fix-postinst
Fix regression with postinst script
- Loading branch information
Showing
8 changed files
with
325 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
#!/bin/sh | ||
# WARNING: REQUIRES /bin/sh | ||
# | ||
# - must run on /bin/sh on solaris 9 | ||
# - must run on /bin/sh on AIX 6.x | ||
# - if you think you are a bash wizard, you probably do not understand | ||
# this programming language. do not touch. | ||
# - if you are under 40, get peer review from your elders. | ||
# | ||
# Install a full Opscode Client | ||
# | ||
|
||
PROGNAME=`basename $0` | ||
INSTALLER_DIR=/opt/angrychef | ||
CONFIG_DIR=/etc/chef | ||
USAGE="usage: $0 [-v validation_key] ([-o organization] || [-u url])" | ||
|
||
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 | ||
|
||
validation_key= | ||
organization= | ||
chef_url= | ||
|
||
while getopts o:u:v: opt | ||
do | ||
case "$opt" in | ||
v) validation_key="${OPTARG}";; | ||
o) organization="${OPTARG}"; chef_url="https://api.opscode.com/organizations/${OPTARG}";; | ||
u) chef_url="${OPTARG}";; | ||
\?) # unknown flag | ||
echo >&2 ${USAGE} | ||
exit 1;; | ||
esac | ||
done | ||
shift `expr ${OPTIND} - 1` | ||
|
||
if [ "" != "$chef_url" ]; then | ||
mkdir -p ${CONFIG_DIR} || error_exit "Cannot create ${CONFIG_DIR}!" | ||
( | ||
cat <<'EOP' | ||
log_level :info | ||
log_location STDOUT | ||
EOP | ||
) > ${CONFIG_DIR}/client.rb | ||
if [ "" != "$chef_url" ]; then | ||
echo "chef_server_url '${chef_url}'" >> ${CONFIG_DIR}/client.rb | ||
fi | ||
if [ "" != "$organization" ]; then | ||
echo "validation_client_name '${organization}-validator'" >> ${CONFIG_DIR}/client.rb | ||
fi | ||
chmod 644 ${CONFIG_DIR}/client.rb | ||
fi | ||
|
||
if [ "" != "$validation_key" ]; then | ||
cp ${validation_key} ${CONFIG_DIR}/validation.pem || error_exit "Cannot copy the validation key!" | ||
chmod 600 ${CONFIG_DIR}/validation.pem | ||
fi | ||
|
||
# rm -f before ln -sf is required for solaris 9 | ||
rm -f $PREFIX/bin/chef-client | ||
rm -f $PREFIX/bin/chef-solo | ||
rm -f $PREFIX/bin/chef-apply | ||
rm -f $PREFIX/bin/chef-shell | ||
rm -f $PREFIX/bin/knife | ||
rm -f $PREFIX/bin/shef | ||
rm -f $PREFIX/bin/ohai | ||
|
||
ln -sf $INSTALLER_DIR/bin/chef-solo $PREFIX/bin || error_exit "Cannot link chef-solo to $PREFIX/bin" | ||
if [ -f "$INSTALLER_DIR/bin/chef-apply" ]; then | ||
ln -sf $INSTALLER_DIR/bin/chef-apply $PREFIX/bin || error_exit "Cannot link chef-apply to $PREFIX/bin" | ||
fi | ||
if [ -f "$INSTALLER_DIR/bin/chef-shell" ]; then | ||
ln -sf $INSTALLER_DIR/bin/chef-shell $PREFIX/bin || error_exit "Cannot link chef-shell to $PREFIX/bin" | ||
fi | ||
ln -sf $INSTALLER_DIR/bin/knife $PREFIX/bin || error_exit "Cannot link knife to $PREFIX/bin" | ||
if [ -f "$INSTALLER_DIR/bin/shef" ]; then | ||
ln -sf $INSTALLER_DIR/bin/shef $PREFIX/bin || error_exit "Cannot link shef to $PREFIX/bin" | ||
fi | ||
ln -sf $INSTALLER_DIR/bin/ohai $PREFIX/bin || error_exit "Cannot link ohai to $PREFIX/bin" | ||
|
||
# We test for the presence of /usr/bin/chef-client to know if this script succeeds, so this | ||
# must appear as the last real action in the script | ||
ln -sf $INSTALLER_DIR/bin/chef-client $PREFIX/bin || error_exit "Cannot link chef-client to $PREFIX/bin" | ||
|
||
# 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!" | ||
|
||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
#!/bin/sh | ||
# WARNING: REQUIRES /bin/sh | ||
# | ||
# - must run on /bin/sh on solaris 9 | ||
# - must run on /bin/sh on AIX 6.x | ||
# - if you think you are a bash wizard, you probably do not understand | ||
# this programming language. do not touch. | ||
# - if you are under 40, get peer review from your elders. | ||
|
||
is_smartos() { | ||
uname -v | grep "^joyent" 2>&1 >/dev/null | ||
} | ||
|
||
is_darwin() | ||
{ | ||
uname -v | grep "^Darwin" 2>&1 >/dev/null | ||
} | ||
|
||
if is_smartos; then | ||
PREFIX="/opt/local" | ||
elif is_darwin; then | ||
PREFIX="/usr/local" | ||
else | ||
PREFIX="/usr" | ||
fi | ||
|
||
cleanup_symlinks() { | ||
binaries="chef-client chef-solo chef-apply chef-shell knife shef ohai" | ||
for binary in $binaries; do | ||
rm -f $PREFIX/bin/$binary | ||
done | ||
} | ||
|
||
# Clean up binary symlinks if they exist | ||
# see: http://tickets.opscode.com/browse/CHEF-3022 | ||
if [ ! -f /etc/redhat-release -a ! -f /etc/fedora-release -a ! -f /etc/system-release -a ! -f /etc/SuSE-release ]; then | ||
# not a redhat-ish RPM-based system | ||
cleanup_symlinks | ||
elif [ "x$1" = "x0" ]; then | ||
# RPM-based system and we're deinstalling rather than upgrading | ||
cleanup_symlinks | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
#!/bin/sh | ||
# WARNING: REQUIRES /bin/sh | ||
# | ||
# - must run on /bin/sh on solaris 9 | ||
# - must run on /bin/sh on AIX 6.x | ||
# - if you think you are a bash wizard, you probably do not understand | ||
# this programming language. do not touch. | ||
# - if you are under 40, get peer review from your elders. | ||
# | ||
# Install a full Opscode Client | ||
# | ||
|
||
PROGNAME=`basename $0` | ||
INSTALLER_DIR=/opt/chef-fips | ||
CONFIG_DIR=/etc/chef | ||
USAGE="usage: $0 [-v validation_key] ([-o organization] || [-u url])" | ||
|
||
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 | ||
|
||
validation_key= | ||
organization= | ||
chef_url= | ||
|
||
while getopts o:u:v: opt | ||
do | ||
case "$opt" in | ||
v) validation_key="${OPTARG}";; | ||
o) organization="${OPTARG}"; chef_url="https://api.opscode.com/organizations/${OPTARG}";; | ||
u) chef_url="${OPTARG}";; | ||
\?) # unknown flag | ||
echo >&2 ${USAGE} | ||
exit 1;; | ||
esac | ||
done | ||
shift `expr ${OPTIND} - 1` | ||
|
||
if [ "" != "$chef_url" ]; then | ||
mkdir -p ${CONFIG_DIR} || error_exit "Cannot create ${CONFIG_DIR}!" | ||
( | ||
cat <<'EOP' | ||
log_level :info | ||
log_location STDOUT | ||
EOP | ||
) > ${CONFIG_DIR}/client.rb | ||
if [ "" != "$chef_url" ]; then | ||
echo "chef_server_url '${chef_url}'" >> ${CONFIG_DIR}/client.rb | ||
fi | ||
if [ "" != "$organization" ]; then | ||
echo "validation_client_name '${organization}-validator'" >> ${CONFIG_DIR}/client.rb | ||
fi | ||
chmod 644 ${CONFIG_DIR}/client.rb | ||
fi | ||
|
||
if [ "" != "$validation_key" ]; then | ||
cp ${validation_key} ${CONFIG_DIR}/validation.pem || error_exit "Cannot copy the validation key!" | ||
chmod 600 ${CONFIG_DIR}/validation.pem | ||
fi | ||
|
||
# rm -f before ln -sf is required for solaris 9 | ||
rm -f $PREFIX/bin/chef-client | ||
rm -f $PREFIX/bin/chef-solo | ||
rm -f $PREFIX/bin/chef-apply | ||
rm -f $PREFIX/bin/chef-shell | ||
rm -f $PREFIX/bin/knife | ||
rm -f $PREFIX/bin/shef | ||
rm -f $PREFIX/bin/ohai | ||
|
||
ln -sf $INSTALLER_DIR/bin/chef-solo $PREFIX/bin || error_exit "Cannot link chef-solo to $PREFIX/bin" | ||
if [ -f "$INSTALLER_DIR/bin/chef-apply" ]; then | ||
ln -sf $INSTALLER_DIR/bin/chef-apply $PREFIX/bin || error_exit "Cannot link chef-apply to $PREFIX/bin" | ||
fi | ||
if [ -f "$INSTALLER_DIR/bin/chef-shell" ]; then | ||
ln -sf $INSTALLER_DIR/bin/chef-shell $PREFIX/bin || error_exit "Cannot link chef-shell to $PREFIX/bin" | ||
fi | ||
ln -sf $INSTALLER_DIR/bin/knife $PREFIX/bin || error_exit "Cannot link knife to $PREFIX/bin" | ||
if [ -f "$INSTALLER_DIR/bin/shef" ]; then | ||
ln -sf $INSTALLER_DIR/bin/shef $PREFIX/bin || error_exit "Cannot link shef to $PREFIX/bin" | ||
fi | ||
ln -sf $INSTALLER_DIR/bin/ohai $PREFIX/bin || error_exit "Cannot link ohai to $PREFIX/bin" | ||
|
||
# We test for the presence of /usr/bin/chef-client to know if this script succeeds, so this | ||
# must appear as the last real action in the script | ||
ln -sf $INSTALLER_DIR/bin/chef-client $PREFIX/bin || error_exit "Cannot link chef-client to $PREFIX/bin" | ||
|
||
# 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!" | ||
|
||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
#!/bin/sh | ||
# WARNING: REQUIRES /bin/sh | ||
# | ||
# - must run on /bin/sh on solaris 9 | ||
# - must run on /bin/sh on AIX 6.x | ||
# - if you think you are a bash wizard, you probably do not understand | ||
# this programming language. do not touch. | ||
# - if you are under 40, get peer review from your elders. | ||
|
||
is_smartos() { | ||
uname -v | grep "^joyent" 2>&1 >/dev/null | ||
} | ||
|
||
is_darwin() | ||
{ | ||
uname -v | grep "^Darwin" 2>&1 >/dev/null | ||
} | ||
|
||
if is_smartos; then | ||
PREFIX="/opt/local" | ||
elif is_darwin; then | ||
PREFIX="/usr/local" | ||
else | ||
PREFIX="/usr" | ||
fi | ||
|
||
cleanup_symlinks() { | ||
binaries="chef-client chef-solo chef-apply chef-shell knife shef ohai" | ||
for binary in $binaries; do | ||
rm -f $PREFIX/bin/$binary | ||
done | ||
} | ||
|
||
# Clean up binary symlinks if they exist | ||
# see: http://tickets.opscode.com/browse/CHEF-3022 | ||
if [ ! -f /etc/redhat-release -a ! -f /etc/fedora-release -a ! -f /etc/system-release -a ! -f /etc/SuSE-release ]; then | ||
# not a redhat-ish RPM-based system | ||
cleanup_symlinks | ||
elif [ "x$1" = "x0" ]; then | ||
# RPM-based system and we're deinstalling rather than upgrading | ||
cleanup_symlinks | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters