Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
62 lines
1.2 KiB
Shell
Executable file
62 lines
1.2 KiB
Shell
Executable file
#! /bin/bash -e
|
|
|
|
buildbot_step_help() {
|
|
echo "Run a command and wrap it in buildbot step format"
|
|
echo " $0 - <buildbot step> [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
|