Skip to content

Instantly share code, notes, and snippets.

@prisis prisis/tfold.sh
Last active Feb 15, 2019

Embed
What would you like to do?
tfold is a helper to create folded reports on travis
#!/usr/bin/env bash
# How to use:
#
# And add it to your bash file
# source ./tfold.sh
#
# tfold "fold name" "command to execute"
nanoseconds() {
local cmd="date"
local format="+%s%N"
local os=$(uname)
if hash gdate > /dev/null 2>&1; then
cmd="gdate"
elif [[ "$os" = Darwin ]]; then
format="+%s000000000"
fi
$cmd -u $format
}
# Arguments:
# $1 fold name
# $2 command to execute
tfold () {
local title=$1
local fold=$(echo "$title" | sed -r 's/[^-_A-Za-z\d]+/./g')
shift
local id=$(printf %08x $(( RANDOM * RANDOM )))
local start=$(nanoseconds)
echo -e "travis_fold:start:$fold"
echo -e "travis_time:start:$id"
echo -e "\\e[1;34m$title\\e[0m"
bash -xc "$*" 2>&1
local ok=$?
local end=$(nanoseconds)
echo -e "\\ntravis_time:end:$id:start=$start,finish=$end,duration=$(($end-$start))"
(exit $ok) &&
echo -e "\\e[32mOK\\e[0m $title\\n\\ntravis_fold:end:$fold" ||
echo -e "\\e[41mKO\\e[0m $title\\n"
(exit $ok)
}
export -f nanoseconds;
export -f tfold;
@prisis

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.