aboutsummaryrefslogtreecommitdiff
path: root/bin/continuous_build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/continuous_build.sh')
-rwxr-xr-xbin/continuous_build.sh126
1 files changed, 0 insertions, 126 deletions
diff --git a/bin/continuous_build.sh b/bin/continuous_build.sh
deleted file mode 100755
index 6f47c69..0000000
--- a/bin/continuous_build.sh
+++ /dev/null
@@ -1,126 +0,0 @@
-# /bin/sh
-# $Id$
-# vim:et:ft=sh:sts=2:sw=2
-#
-# Copyright 2010 Kate Ward. All Rights Reserved.
-# Author: kate.ward@forestent.com (Kate Ward)
-#
-# Continuous build script for shell library testing.
-#
-# Sample usages:
-# $ blah
-
-# treat unset variables as an error
-set -u
-
-# global constants
-ARGV0=`basename "$0"`
-ARGV0_DIR=`dirname "$0"`
-SHLIB_DIR="${ARGV0_DIR}/../lib"
-
-# load libraries
-. ${SHFLAGS_LIB:-${SHLIB_DIR}/shflags} \
- || (echo 'unable to load shflags library' >&2; exit 1)
-. ${VERSIONS_LIB:-${SHLIB_DIR}/versions} \
- || (echo 'unable to load versions library' >&2; exit 1)
-
-OUTPUT_FILE="${VERSIONS_OS_NAME}_${VERSIONS_OS_RELEASE}"
-
-# define flags
-DEFINE_string 'command' '' 'the command to start a build' 'c'
-DEFINE_string 'watch' '' 'file to watch for changes' 'w'
-DEFINE_string 'watch_from' '' 'file containing filenames to watch' 'W'
-DEFINE_string 'output' "${OUTPUT_FILE}" 'output file to write to' 'o'
-DEFINE_string 'output_dir' '.' 'directory to write output file' 'O'
-DEFINE_integer 'pause' 60 'pause between successive runs (sec)' 'p'
-
-FLAGS_HELP="USAGE: ${ARGV0} [flags]"
-
-#------------------------------------------------------------------------------
-# functions
-#
-
-# This function exits the script, optionally printing a message
-#
-# Args:
-# message: string: an error message to be output (optional)
-# Output:
-# string: usable flags
-die() {
- [ $# -ne 0 ] && echo "$@" >&2
- flags_help
- exit 1
-}
-
-# Function to give the current date in ISO format
-#
-# Args:
-# none
-# Output:
-# string: isodate
-isodate() {
- date -u '+%Y%m%dT%H%M%SZ'
-}
-
-age() {
- awkScript=''
- case ${VERSIONS_OS_NAME} in
- FreeBSD|Solaris) awkScript='{print $6,$7,$8}' ;;
- Linux) awkScript='{print $6,$7}' ;;
- *) echo "unrecognized OS name (${VERSIONS_OS_NAME})" >&2 ;;
- esac
- ls -l "$1" |awk "${awkScript}"
-}
-
-#------------------------------------------------------------------------------
-# main
-#
-
-main()
-{
- # checks
- [ -n "${FLAGS_command}" ] || die 'command required'
- [ -z "${FLAGS_watch}" -a -z "${FLAGS_watch_from}" ] \
- && die 'one of watch or watch_from required'
- [ -n "${FLAGS_watch}" -a -n "${FLAGS_watch_from}" ] \
- && die 'only one of watch or watch_from can be specified'
- [ -r "${FLAGS_watch}" ] || die 'unable to read watch file'
- [ -w "${FLAGS_output_dir}" ] || die 'unable to write to output directory'
-
- watchAge=`age "${FLAGS_watch}"`
- watchAgePrev=${watchAge}
-
- # build
- while true; do
- if [ ! "${watchAge}" == "${watchAgePrev}" ]; then
- date=`isodate`
- echo "building ${VERSIONS_OS_NAME}-${VERSIONS_OS_RELEASE} @ ${date}"
- outputFileDated="${FLAGS_output}-${date}"
- ${FLAGS_command} >"${FLAGS_output_dir}/${outputFileDated}" 2>&1
-
- ( cd "${FLAGS_output_dir}";
- rm -f "${FLAGS_output}";
- ln -s "${outputFileDated}" "${FLAGS_output}";
- grep FAIL "${FLAGS_output}"; )
-
- watchAgePrev=${watchAge}
- fi
-
- watchAge=`age "${FLAGS_watch}"`
- if [ "${watchAge}" == "${watchAgePrev}" ]; then
- echo 'sleeping...'
- while [ "${watchAge}" == "${watchAgePrev}" ]; do
- sleep ${FLAGS_pause}
- watchAge=`age "${FLAGS_watch}"`
- done
- fi
- done
-}
-
-# execute main() if this is run in standalone mode (i.e. not in a unit test)
-argv0=`echo "${ARGV0}" |sed 's/_test$//;s/_test\.sh$//'`
-if [ "${ARGV0}" = "${argv0}" ]; then
- FLAGS "$@" || exit $?
- eval set -- "${FLAGS_ARGV}"
- if [ $# -gt 0 ]; then main "$@"; else main; fi
-fi