#!/bin/bash TEST_MACHINES=$( cat <<'HEREDOC' lrineau@bonnard lrineau@cgal cgaltest@friedrich lrineau@rubens HEREDOC ) cat </dev/null || { echo 'sed is required' exit 1 } if [[ $1 == --table ]] && ! command -v pandoc >/dev/null; then echo 'pandoc is required for the option --table' exit 1 fi if [[ $1 == --column ]] && ! command -v column >/dev/null; then echo 'column is required for the option --column' exit 1 fi if [[ $1 == --bat ]] && ! command -v bat >/dev/null; then echo 'bat is required for the option --bat' exit 1 fi set_pretty_csv_to_md_table() { pretty_csv() ( echo sed '/```/ d; /^$/ d' | pandoc -f tsv -t gfm ) } set_pretty_csv_to_column() { pretty_csv() { echo column -t -s $'\t' -o $'\t' | sed 's/^\(```[^ ]*\) *\t.*/\1/' } } set_pretty_csv_to_bat() { pretty_csv() { bat --tabs=50 --paging=never --plain -l csv } } set_pretty_csv_to_cat() { pretty_csv() { cat } } case "$1" in --table) set_pretty_csv_to_md_table ;; --column) set_pretty_csv_to_column ;; --bat) set_pretty_csv_to_bat ;; --plain) set_pretty_csv_to_cat ;; '') if command -v bat >/dev/null; then set_pretty_csv_to_bat elif command -v column >/dev/null; then set_pretty_csv_to_column else set_pretty_csv_to_cat fi ;; *) echo "Unknown option $1" exit 1 ;; esac for machine in $TEST_MACHINES; do USER=${machine%@*} HOST=${machine#*@} machine_title $machine printf '\nusing `%s`\n' "$(ssh $HOST docker --version)" printf '\nTested images:\n' machine_tested_images $HOST $USER printf '\nCGAL test containers:\n' machine_list_cgal_test_container $HOST $USER | pretty_csv done