From 3737dd29e690caec67622fcefb3bc434381aff8b Mon Sep 17 00:00:00 2001 From: Quentin Guilloteau Date: Thu, 11 Jul 2024 13:37:07 +0200 Subject: [PATCH] add start of workflow to extract non blacklisted artifacts --- blacklist.csv | 1 + workflow/1_artifacts_to_build.smk | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 blacklist.csv create mode 100644 workflow/1_artifacts_to_build.smk diff --git a/blacklist.csv b/blacklist.csv new file mode 100644 index 0000000..442168d --- /dev/null +++ b/blacklist.csv @@ -0,0 +1 @@ +artifacts/sc24_test.yaml, IMAGE_NOT_FOUND, 0 diff --git a/workflow/1_artifacts_to_build.smk b/workflow/1_artifacts_to_build.smk new file mode 100644 index 0000000..d62505d --- /dev/null +++ b/workflow/1_artifacts_to_build.smk @@ -0,0 +1,28 @@ +import csv +import os + +ARTIFACTS_FOLDER = "artifacts" +BLACKLIST = "blacklist.csv" + +def get_blacklisted_paths(blacklist_csv_path): + blacklisted = set() + with open(blacklist_csv_path, "r") as csv_file: + spamreader = csv.reader(csv_file, delimiter=",") + for row in spamreader: + blacklisted.add(row[0]) + return blacklisted + +def get_artifacts_to_build(artifacts_folder, blacklist_csv_path): + blacklisted = get_blacklisted_paths(blacklist_csv_path) + all_artifacts = set([os.path.join(artifacts_folder, a) for a in os.listdir(artifacts_folder) if not os.path.isdir(os.path.join(artifacts_folder, a))]) + return list(all_artifacts.difference(blacklisted)) + +rule all: + input: + BLACKLIST, + output: + "all.csv", + params: + artifacts = get_artifacts_to_build(ARTIFACTS_FOLDER, BLACKLIST), + shell: + "echo {params.artifacts} > {output}"