63 lines
1.9 KiB
Bash
Executable file
63 lines
1.9 KiB
Bash
Executable file
#!/bin/bash
|
|
# Copyright (c) 2015 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
SCRIPT_DIR=$(dirname $(readlink -f $0))
|
|
cd ${SCRIPT_DIR}/..
|
|
|
|
LOGDIR=logs/stable-version
|
|
ASSIGN_STABLE=site_utils/stable_images/assign_stable_images.py
|
|
OPTIONS=()
|
|
|
|
# STATUS is part hack, part safety valve. The cron job that invokes
|
|
# this script may be installed and enabled on both a primary and backup
|
|
# server. We skip running on the backup, but really, the backup
|
|
# shouldn't have invoked this script in the first place...
|
|
#
|
|
# If we're not invoked on an autotest server at all, we assume this is
|
|
# for testing, and invoke a dry run instead.
|
|
#
|
|
SERVER_STATUS=$(cli/atest server list $(hostname) 2>&1 |
|
|
awk '/^Status *:/ { print $NF }')
|
|
if [ "${SERVER_STATUS}" = "primary" ]; then
|
|
mkdir -p ${LOGDIR}
|
|
NOTIFY=(
|
|
chromeos-infra-eng@grotations.appspotmail.com
|
|
)
|
|
else
|
|
if [ -n "${SERVER_STATUS}" ]; then
|
|
# must be backup
|
|
exit 0
|
|
fi
|
|
OPTIONS=( --dry-run )
|
|
NOTIFY=( ${LOGNAME}@google.com )
|
|
fi
|
|
|
|
# Redirect onto a log file. For debug purposes, skip redirection if
|
|
# there's a command line argument (we ignore what the argument is), or
|
|
# if there's no log directory.
|
|
#
|
|
TAG=$(date '+%Y-%W')
|
|
if [ $# -eq 0 -a -d ${LOGDIR} ]; then
|
|
LOGFILE="update-${TAG}.log"
|
|
exec >>${LOGDIR}/${LOGFILE} 2>&1
|
|
fi
|
|
|
|
trap 'rm -f ${TMPFILE}' EXIT
|
|
TMPFILE=$(mktemp)
|
|
|
|
date
|
|
$ASSIGN_STABLE "${OPTIONS[@]}" 2>&1 | tee ${TMPFILE}
|
|
echo
|
|
|
|
# If we have a log directory, clean it up, and send e-mail notification.
|
|
# The log files change name each week, so by throwing out all but the
|
|
# most recent 14 files, we keep about 3 months of history, plus this
|
|
# week's log.
|
|
#
|
|
if [ -d ${LOGDIR} ]; then
|
|
SUBJECT="Stable version update summary ${TAG}"
|
|
site_utils/gmail_lib.py -s "${SUBJECT}" "${NOTIFY[@]}" <${TMPFILE}
|
|
rm -f $(ls -r ${LOGDIR}/update-*.log | sed '1,14 d')
|
|
fi
|