summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authormbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4>2009-03-09 21:48:33 +0000
committermbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4>2009-03-09 21:48:33 +0000
commitaaf56639287f286cbfe3a66fca4b71457488fa0f (patch)
tree72c95c9e4fc28f3276c28db786b97e6570de426b /utils
parent92c07cbae512c3d65345014526f4a49cb43bb20e (diff)
Post-release procedures for autotest, with site-specific hooks
Signed-off-by: Rachel Kroll <rkroll@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@2860 592f7852-d20e-0410-864c-8624ca9c26a4
Diffstat (limited to 'utils')
-rw-r--r--utils/release129
1 files changed, 129 insertions, 0 deletions
diff --git a/utils/release b/utils/release
new file mode 100644
index 00000000..4e3a6f36
--- /dev/null
+++ b/utils/release
@@ -0,0 +1,129 @@
+#!/bin/sh
+
+# steps to take following a release of new code to keep things working.
+#
+# the following scripts may be created to customize behavior:
+#
+# site_utils/site_sync_code
+#
+# - pull code from a source repository
+#
+# site_utils/site_install_cli
+#
+# - install or update client code (new "atest" build?)
+#
+# site_utils/site_restart_apache
+#
+# - suid helper or similar?
+#
+# site_utils/site_restart_final
+#
+# - any finishing touches you may require.
+
+# ---
+
+INIT_SCR=/etc/init.d/autotest
+
+# ---
+
+print_status() {
+ STATUS=$1
+
+ echo "--- $STATUS"
+}
+
+fatal() {
+ echo "*** Fatal error. Giving up."
+ exit 1
+}
+
+# ---
+
+MY_DIR=`dirname $0`
+
+if (! test -f $INIT_SCR)
+then
+ echo "Error: $INIT_SCR must be installed."
+ exit 1
+fi
+
+BECOME_USER=`grep ^BECOME_USER= $INIT_SCR`
+
+if (test "$BECOME_USER" == "")
+then
+ echo "Error: BECOME_USER not defined in $INIT_SCR"
+ exit 1
+fi
+
+BASE_DIR=`grep ^BASE_DIR= $INIT_SCR`
+
+if (test "$BASE_DIR" == "")
+then
+ echo "Error: BASE_DIR not defined in $INIT_SCR"
+ exit 1
+fi
+
+eval $BECOME_USER
+eval $BASE_DIR
+
+# --- stop autotest persistent code
+
+print_status "Stopping autotest persistent code"
+$INIT_SCR stop
+
+# --- sync code (site-specific)
+
+if (test -x $BASE_DIR/site_utils/site_sync_code)
+then
+ print_status "Syncing code"
+ su $BECOME_USER -c $BASE_DIR/site_utils/site_sync_code || exit 1
+fi
+
+# --- compile AfeClient
+
+print_status "Compiling AfeClient"
+( cd $BASE_DIR/frontend/client &&
+ su $BECOME_USER -c ./AfeClient-compile ) || fatal
+
+# --- compile TkoClient
+
+print_status "Compiling TkoClient"
+( cd $BASE_DIR/frontend/client &&
+ su $BECOME_USER -c ./TkoClient-compile ) || fatal
+
+# --- fix gwt permissions
+
+print_status "Fixing permissions"
+( cd $BASE_DIR/frontend/client &&
+ find | xargs chmod o+r &&
+ find -type d | xargs chmod o+rx ) || fatal
+
+# --- update cli repository (site-specific)
+
+if (test -x $BASE_DIR/site_utils/site_install_cli)
+then
+ print_status "Updating cli repository"
+ su $BECOME_USER -c $BASE_DIR/site_utils/site_install_cli || fatal
+fi
+
+# --- restart autotest persistent code
+
+print_status "Restarting autotest persistent code"
+$INIT_SCR start || fatal
+
+# --- possibly restart Apache (site-specific)
+
+if (test -x $BASE_DIR/site_utils/site_restart_apache)
+then
+ print_status "Restarting Apache"
+ su $BECOME_USER -c $BASE_DIR/site_utils/site_restart_apache || fatal
+fi
+
+# --- do any site-specific finalization
+
+if (test -x $BASE_DIR/site_utils/site_restart_final)
+then
+ print_status "Finalizing release"
+ su $BECOME_USER -c $BASE_DIR/site_utils/site_restart_final || fatal
+fi
+