From 6666ec9cb956c26faefe25d414bd204bfd9d1794 Mon Sep 17 00:00:00 2001 From: Peter Surda Date: Tue, 5 Jan 2021 09:52:34 +0100 Subject: [PATCH] Add travis2bash --- travis2bash.sh | 149 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100755 travis2bash.sh diff --git a/travis2bash.sh b/travis2bash.sh new file mode 100755 index 0000000..dd8d19e --- /dev/null +++ b/travis2bash.sh @@ -0,0 +1,149 @@ +#!/usr/bin/env bash +# implementation of .travis.yml execution using pure bash +# limited functionality + +# shellcheck disable=SC1003 + +# yaml.sh # pulled from +# https://raw.githubusercontent.com/jasperes/bash-yaml/master/script/yaml.sh +# Licensed under MIT license + +# Based on https://gist.github.com/pkuczynski/8665367 + +failure=0 + +parse_yaml() { + local yaml_file=$1 + local prefix=$2 + local s + local w + local fs + + s='[[:space:]]*' + w='[a-zA-Z0-9_.-]*' + fs="$(echo @|tr @ '\034')" + + ( + sed -e '/- [^\“]'"[^\']"'.*: /s|\([ ]*\)- \([[:space:]]*\)|\1-\'$'\n'' \1\2|g' | + + sed -ne '/^--/s|--||g; s|\"|\\\"|g; s/[[:space:]]*$//g;' \ + -e "/#.*[\"\']/!s| #.*||g; /^#/s|#.*||g;" \ + -e "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)${s}[:-]$s\(.*\)$s\$|\1$fs\2$fs\3|p" | + + awk -F"$fs" '{ + indent = length($1)/2; + if (length($2) == 0) { conj[indent]="+";} else {conj[indent]="";} + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i