#!/bin/bash
# ideone boilerplate - we can't write files in the home directory;
# so create a temporary directory for our files instead
t=$(mktemp -d -t ideone.XXXXXXXXXXXX) || exit
trap 'rm -rf "$t"' ERR EXIT
cd "$t"
mkdir inputs
cat <<\: >inputs/first.csv
header,result
:
cat <<\: >inputs/second.csv
header
noresult
:
cat <<\: >inputs/third.csv
header,result
nothing,
:
cat <<\: >inputs/_4th.csv
header,result
something,other
:
cat <<\: >script.py
import csv
import os
from glob import glob
path="inputs"
with open("SUMMARY.csv", 'w', encoding='utf-8') as output_file:
writer = csv.writer(output_file)
writer.writerow(['SCENARIO', 'STATUS'])
for filename in glob(f"{path}/*.csv"):
with open(filename, 'r', encoding='utf-8') as input_file:
value = "FAIL"
reader = csv.reader(input_file)
for lineno, line in enumerate(reader, 1):
if lineno != 2:
continue
if len(line) > 1 and line[1] != "":
value = "PASS"
break
writer.writerow([os.path.basename(filename).split(".")[0], value])
:
python3 script.py
nl SUMMARY.csv
IyEvYmluL2Jhc2gKCiMgaWRlb25lIGJvaWxlcnBsYXRlIC0gd2UgY2FuJ3Qgd3JpdGUgZmlsZXMgaW4gdGhlIGhvbWUgZGlyZWN0b3J5OwojIHNvIGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIG91ciBmaWxlcyBpbnN0ZWFkCnQ9JChta3RlbXAgLWQgLXQgaWRlb25lLlhYWFhYWFhYWFhYWCkgfHwgZXhpdAp0cmFwICdybSAtcmYgIiR0IicgRVJSIEVYSVQKY2QgIiR0IgoKbWtkaXIgaW5wdXRzCmNhdCA8PFw6ID5pbnB1dHMvZmlyc3QuY3N2CmhlYWRlcixyZXN1bHQKOgoKY2F0IDw8XDogPmlucHV0cy9zZWNvbmQuY3N2CmhlYWRlcgpub3Jlc3VsdAo6CgpjYXQgPDxcOiA+aW5wdXRzL3RoaXJkLmNzdgpoZWFkZXIscmVzdWx0Cm5vdGhpbmcsCjoKCmNhdCA8PFw6ID5pbnB1dHMvXzR0aC5jc3YKaGVhZGVyLHJlc3VsdApzb21ldGhpbmcsb3RoZXIKOgoKY2F0IDw8XDogPnNjcmlwdC5weQppbXBvcnQgY3N2CmltcG9ydCBvcwpmcm9tIGdsb2IgaW1wb3J0IGdsb2IKCgpwYXRoPSJpbnB1dHMiCgp3aXRoIG9wZW4oIlNVTU1BUlkuY3N2IiwgJ3cnLCBlbmNvZGluZz0ndXRmLTgnKSBhcyBvdXRwdXRfZmlsZToKICAgIHdyaXRlciA9IGNzdi53cml0ZXIob3V0cHV0X2ZpbGUpCiAgICB3cml0ZXIud3JpdGVyb3coWydTQ0VOQVJJTycsICdTVEFUVVMnXSkKICAgIGZvciBmaWxlbmFtZSBpbiBnbG9iKGYie3BhdGh9LyouY3N2Iik6CiAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAncicsIGVuY29kaW5nPSd1dGYtOCcpIGFzIGlucHV0X2ZpbGU6CiAgICAgICAgICAgIHZhbHVlID0gIkZBSUwiCiAgICAgICAgICAgIHJlYWRlciA9IGNzdi5yZWFkZXIoaW5wdXRfZmlsZSkKICAgICAgICAgICAgZm9yIGxpbmVubywgbGluZSBpbiBlbnVtZXJhdGUocmVhZGVyLCAxKToKICAgICAgICAgICAgICAgIGlmIGxpbmVubyAhPSAyOgogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICBpZiBsZW4obGluZSkgPiAxIGFuZCBsaW5lWzFdICE9ICIiOgogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gIlBBU1MiCiAgICAgICAgICAgICAgICBicmVhawogICAgICAgIHdyaXRlci53cml0ZXJvdyhbb3MucGF0aC5iYXNlbmFtZShmaWxlbmFtZSkuc3BsaXQoIi4iKVswXSwgdmFsdWVdKQo6CgpweXRob24zIHNjcmlwdC5weQoKbmwgU1VNTUFSWS5jc3YK