diff options
-rwxr-xr-x | snakemake-file-targets | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/snakemake-file-targets b/snakemake-file-targets new file mode 100755 index 0000000..12dca78 --- /dev/null +++ b/snakemake-file-targets @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +"""Print all concrete file targets. + +Usage: snakemake-file-targets [SNAKEFILE] +""" +import sys +from snakemake.workflow import Workflow + +if len(sys.argv) == 1: + snakefile = "Snakefile" +elif len(sys.argv) == 2 and sys.argv[1] not in ["-h", "--help"]: + snakefile = sys.argv[1] +else: + sys.exit(__doc__) + +workflow = Workflow(snakefile=snakefile, snakemakepath="snakemake") +workflow.include(snakefile) + +for rule in workflow.rules: + for fname in rule.output: + if not callable(fname) and not fname.contains_wildcard(): + try: + print(fname) + except BrokenPipeError: + sys.exit(0) |