diff options
author | Kyle Meyer <kyle@kyleam.com> | 2016-02-28 03:39:12 -0500 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2016-02-28 03:46:06 -0500 |
commit | 6b4ff95035c25d29680f13b34757c4b31a71ed9b (patch) | |
tree | ed7b3e9cf525e88e1fb487ebdfd94f8802020bc0 | |
parent | 89741b59f6392a357b3a21ee21c8de2e536b092a (diff) | |
download | snakemake-mode-6b4ff95035c25d29680f13b34757c4b31a71ed9b.tar.gz |
snakemake-all-rules: New command
-rw-r--r-- | snakemake.el | 9 | ||||
-rw-r--r-- | test-snakemake.el | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/snakemake.el b/snakemake.el index 8a985ee..396290a 100644 --- a/snakemake.el +++ b/snakemake.el @@ -173,6 +173,15 @@ with DIRECTORY and the Snakefile's modification time." "Call `snakemake-program' with ARGS and insert output." (apply #'call-process snakemake-program nil t nil args)) +(defun snakemake-all-rules (&optional directory) + "Return list of rules for DIRECTORY's Snakefile." + (snakemake-with-cache directory ("all-rules") + (split-string + (with-temp-buffer + (if (= 0 (snakemake-insert-output "--nocolor" "--list")) + (buffer-string) + (error "Error finding rules")))))) + (defun snakemake-rule-targets (&optional directory) "Return list of target rules for DIRECTORY's Snakefile." (snakemake-with-cache directory ("target-rules") diff --git a/test-snakemake.el b/test-snakemake.el index 03cf1f1..0f83821 100644 --- a/test-snakemake.el +++ b/test-snakemake.el @@ -672,6 +672,13 @@ rule abc: (snakemake-with-temp-dir (snakemake-rule-targets))))) +(ert-deftest test-snakemake/all-rules () + "Test `snakemake-all-rules'." + (should + (equal '("aa" "bb" "cc_wildcards" "dd_subdir") + (snakemake-with-temp-dir + (snakemake-all-rules))))) + (ert-deftest test-snakemake/file-targets () "Test `snakemake-file-targets'." (should |