#!/bin/sh -e # postinst script for perforce-swarm-triggers # # see: dh_installdeb(1) # Summary of how this script can be called: # 'configure' # 'abort-upgrade' # 'abort-remove' 'in-favour' # 'abort-remove' # 'abort-deconfigure' \ # 'in-favour' \ # 'removing' # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package ME="${0##*/}" #echo "###########################" #echo "[$ME] [$*]" THISPKG="helix-swarm-triggers" PERFORCE_ROOT="/opt/perforce" PERFORCE_CFGDIR="$PERFORCE_ROOT/etc" SWARM_ROOT="$PERFORCE_ROOT/swarm" SWARM_DATADIR="$SWARM_ROOT/data" SWARM_SBINDIR="$SWARM_ROOT/sbin" SWARM_CONFIG="$SWARM_DATADIR/config.php" SWARM_TRIG_BINDIR="$PERFORCE_ROOT/swarm-triggers/bin" SWARM_TRIG_SCRIPT="$SWARM_TRIG_BINDIR/swarm-trigger.pl" SWARM_CONFIG_SRCNAME="swarm-trigger.conf" SWARM_TRIG_CONFIG="$PERFORCE_CFGDIR/$SWARM_CONFIG_SRCNAME" do_configure() { if [ -z "$1" ]; then mode=install else mode=upgrade from_version="$1" from_version_major="${from_version%%-*}" fi # Create the trigger config file template local good_swarm_trig_config=0 while true; do if [ ! -r "$SWARM_TRIG_SCRIPT" ]; then error_msg="cannot find Swarm trigger script [$SWARM_TRIG_SCRIPT]" break fi local new_swarm_trig_config="$SWARM_TRIG_CONFIG.dpkg-new" mkdir -p "$(dirname "$new_swarm_trig_config")" sed -ne '/^# SWARM_HOST/,/^ADMIN_TICKET_FILE/p' "$SWARM_TRIG_SCRIPT" > "$new_swarm_trig_config" if [ $? -ne 0 ]; then error_msg="trouble composing new Swarm trigger config [$new_swarm_trig_config]" break fi # Put new file into place only if one doesn't exist if [ -r "$SWARM_TRIG_CONFIG" ]; then # Check if it's the same if diff -q "$new_swarm_trig_config" "$SWARM_TRIG_CONFIG" > /dev/null; then # No difference, so remove what we created rm -f "$new_swarm_trig_config" else # Different, so leave it as *.dpkg-new echo "$THISPKG: warning: $SWARM_TRIG_CONFIG created as $new_swarm_trig_config" fi else # Move into place mv "$new_swarm_trig_config" "$SWARM_TRIG_CONFIG" fi good_swarm_trig_config=1 break done if [ $good_swarm_trig_config -ne 1 ]; then cat << __WARNING__ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !! $THISPKG: Warning: problems creating Swarm trigger config file !! Problem: !! $error_msg !! !! You must manually edit the following file as appropriate: !! !! ${SWARM_TRIG_CONFIG} !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! __WARNING__ fi if [ "$mode" = "install" ]; then cat << __INSTALL_MSG__ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: Swarm Triggers are now installed, but not configured. :: You must edit the following file as appropriate: :: :: ${SWARM_TRIG_CONFIG} :: :: Ensure you create the triggers in your Perforce server. :: :: Reference: :: http://www.perforce.com/perforce/doc.current/manuals/swarm/setup.perforce.html :: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: __INSTALL_MSG__ elif [ "$mode" = "upgrade" ]; then if [ "$from_version_major" = "2014.2" ]; then cat << __UPGRADE_MSG__ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: Swarm Triggers have been upgraded, but must be :: reconfigured. You must edit the following file as appropriate: :: :: ${SWARM_TRIG_CONFIG} :: :: Ensure you update the triggers in your Perforce server, as new :: entries have been added for this release. Reference: :: :: http://www.perforce.com/perforce/doc.current/manuals/swarm/setup.perforce.html :: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: __UPGRADE_MSG__ else : # should be a smooth upgrade at this point fi fi } case "$1" in configure) do_configure "$2" ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "$ME called with unknown argument [$1]" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0