blob: 8af38eabeac6d569341b4067789f0595a6adec07 [file] [log] [blame]
#!/bin/bash
# Copyright 2012 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.
usage() {
echo "usage: $0 [ <board> ]" >&2
echo "Example:" >&2
echo " $0 lumpy" >&2
exit 1
}
# N.B. The upstart job requires CONFIG_FILE to exist, or it will
# fail. Although the job will safely handle a file that doesn't
# set BOARD, we require users to create the file with a BOARD
# setting, so as to prevent accidents.
CONFIG_FILE=/etc/default/servod
if [ $# -gt 1 ]; then
usage
elif [ $# -eq 0 -a ! -f $CONFIG_FILE ]; then
echo "No board previously configured; you must supply a <board> argument" >&2
usage
fi
set -e
cd $(dirname $0)/..
sudo true
sudo stop servod || true
sudo make EXTRA_DIRS=beaglebone HOSTOS_STACK_PROTECTOR= install
sudo python setup.py install
sudo python setup.py develop
# The first time we deploy, $CONFIG_FILE won't exist. After the
# first time, we want to use the existing BOARD setting, if a new
# board isn't given on the command line.
if [ -f $CONFIG_FILE ]; then
. $CONFIG_FILE
fi
if [ $# -ne 0 ]; then
BOARD="$1"
fi
CONFIG_TMP=$(mktemp /tmp/hdctools.XXXXXX)
# The string in REVISION will be interpreted by the shell, so we need
# quote special characters. Quote the string with single-quotes to
# simplify things.
cat <<END >$CONFIG_TMP
BOARD="$BOARD"
REVISION=$(printf %q "$(git log -1 --oneline)")
END
sudo mv $CONFIG_TMP $CONFIG_FILE
sudo start servod