From 9d664cc2c97315ed8e7d27b688c8cb2136e92127 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 22 Aug 2025 04:38:35 +0100 Subject: Add CWL conformance test helper files. Forgetting to commit required files—classic mistake! --- cwl-conformance/LICENSE | 2 ++ cwl-conformance/badgegen.py | 37 ++++++++++++++++++++++++++++++++++++ cwl-conformance/commonwl.svg | 1 + cwl-conformance/cwltest-manifest.scm | 2 ++ 4 files changed, 42 insertions(+) create mode 100644 cwl-conformance/LICENSE create mode 100644 cwl-conformance/badgegen.py create mode 100644 cwl-conformance/commonwl.svg create mode 100644 cwl-conformance/cwltest-manifest.scm diff --git a/cwl-conformance/LICENSE b/cwl-conformance/LICENSE new file mode 100644 index 0000000..b1e57b6 --- /dev/null +++ b/cwl-conformance/LICENSE @@ -0,0 +1,2 @@ +commonwl.svg is under the ISC license and is sourced from +https://github.com/badgen/badgen-icons/blob/master/icons/commonwl.svg \ No newline at end of file diff --git a/cwl-conformance/badgegen.py b/cwl-conformance/badgegen.py new file mode 100644 index 0000000..1e8f5f0 --- /dev/null +++ b/cwl-conformance/badgegen.py @@ -0,0 +1,37 @@ +### ravanan --- High-reproducibility CWL runner powered by Guix +### Copyright © 2025 Arun Isaac +### +### This file is part of ravanan. +### +### ravanan is free software: you can redistribute it and/or modify it +### under the terms of the GNU General Public License as published by +### the Free Software Foundation, either version 3 of the License, or +### (at your option) any later version. +### +### ravanan is distributed in the hope that it will be useful, but +### WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +### General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with ravanan. If not, see . + +import json +from pathlib import Path +from pybadges import badge +import sys + +match sys.argv: + case [_, cwltest_badgedir, cwl_icon_file, output_directory]: + for summary_file in Path(cwltest_badgedir).glob("*.json"): + with open(summary_file) as file: + summary = json.load(file) + with (Path(output_directory) / (summary_file.stem + ".svg")).open("w") as file: + file.write(badge(left_text=summary["subject"], + right_text=summary["status"], + right_color=summary["color"], + logo=cwl_icon_file, + embed_logo=True)) + case [program, *_]: + print(f"Usage: {program} CWLTEST_BADGEDIR CWL_ICON_FILE OUTPUT_DIRECTORY") + sys.exit(1) diff --git a/cwl-conformance/commonwl.svg b/cwl-conformance/commonwl.svg new file mode 100644 index 0000000..0eeb627 --- /dev/null +++ b/cwl-conformance/commonwl.svg @@ -0,0 +1 @@ + diff --git a/cwl-conformance/cwltest-manifest.scm b/cwl-conformance/cwltest-manifest.scm new file mode 100644 index 0000000..9cf33d5 --- /dev/null +++ b/cwl-conformance/cwltest-manifest.scm @@ -0,0 +1,2 @@ +(specifications->manifest + (list "coreutils" "python-wrapper")) -- cgit 1.4.1