From af46939af5dbe914e07c9b1ec0af2560b38ffbc6 Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Fri, 6 Nov 2015 22:21:30 +0000 Subject: Bug 1222497 - Refactor the BMO docker image with new file and script structure while minimizing final image size --- docker/scripts/buildbot_step | 63 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docker/scripts/buildbot_step (limited to 'docker/scripts/buildbot_step') diff --git a/docker/scripts/buildbot_step b/docker/scripts/buildbot_step new file mode 100644 index 000000000..a567351b8 --- /dev/null +++ b/docker/scripts/buildbot_step @@ -0,0 +1,63 @@ +#! /bin/bash -e + +buildbot_step_help() { + echo "Run a command and wrap it in buildbot step format" + echo " $0 - [bash args...]" +} + +bb_time() { + # Parser dies if this is longer then 6 chars long. + nano=$(date +%N | cut -c1-6) + echo "$(date '+%Y-%m-%d %H:%M:%S.')$nano" +} + +bb_echo() { + echo "========= $1 =========" +} + +bb_line() { + local type=$1 # Finished/Started + local step=$2 # Name of step + local code=$3 # Exit code + local duration=$4 # Elapsed time in seconds + local time=$(bb_time) + + bb_echo "$type $step (results: $code, elapsed: $duration secs) (at $time)" +} + +# Intentionally the full name of this executable so sourcing this file also +# works as expected... +buildbot_step() { + local step=$1 + local command=${@:2} + local start_time=$(date +%s) + local exit_code=0 + + bb_line "Started" "$step" 0 0 + if eval "$command"; + then + exit_code=$? + else + exit_code=$? + fi + + local end_time=$(date +%s) + local duration=$(($end_time-$start_time)) + + bb_line "Finished" "$step" $exit_code $duration + return $exit_code +} + + +# When this script is not being sourced invoke command directly. +if [ "$(basename $0)" == "buildbot_step" ]; +then + if [ $# -lt 2 ]; + then + buildbot_step_help + exit 1 + fi + buildbot_step "$@" + exit $? +fi + -- cgit v1.2.3-24-g4f1b