summaryrefslogtreecommitdiff
path: root/support/arara/scripts/rules/arara-rule-asymptote.yaml
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-02-27 03:01:43 +0000
committerNorbert Preining <norbert@preining.info>2021-02-27 03:01:43 +0000
commit4e6fb7c03bc033485887a99d2ffeca70ef8c0644 (patch)
tree5a337396041659a71d6da3f68367402d5c4e7dfe /support/arara/scripts/rules/arara-rule-asymptote.yaml
parent8b1159ba65d4003e969141fb034abbdc19e27c4b (diff)
CTAN sync 202102270301
Diffstat (limited to 'support/arara/scripts/rules/arara-rule-asymptote.yaml')
-rw-r--r--support/arara/scripts/rules/arara-rule-asymptote.yaml62
1 files changed, 62 insertions, 0 deletions
diff --git a/support/arara/scripts/rules/arara-rule-asymptote.yaml b/support/arara/scripts/rules/arara-rule-asymptote.yaml
new file mode 100644
index 0000000000..232213f73d
--- /dev/null
+++ b/support/arara/scripts/rules/arara-rule-asymptote.yaml
@@ -0,0 +1,62 @@
+!config
+# Arara, the cool TeX automation tool
+# Copyright (c) 2020, Island of TeX
+# All rights reserved.
+#
+# This rule is part of arara.
+identifier: asymptote
+name: Asymptote
+authors:
+- Island of TeX
+commands:
+- name: Asymptote
+ command: >
+ @{
+ return getCommand('asy', color, engine, twice,
+ format, output, options, reference.getName());
+ }
+arguments:
+- identifier: color
+ flag: >
+ @{
+ if ([ 'bw', 'cmyk', 'rgb', 'gray' ].contains(parameters.color)) {
+ return '-' + parameters.color;
+ } else {
+ throwError('The provided color enforcement is not valid.');
+ }
+ }
+- identifier: engine
+ flag: >
+ @{
+ if ([ 'latex', 'pdflatex' , 'xelatex', 'lualatex', 'tex', 'pdftex',
+ 'luatex', 'context', 'none' ].contains(parameters.engine)) {
+ return [ '-tex', parameters.engine ];
+ } else {
+ throwError('The provided TeX engine is invalid.');
+ }
+ }
+ default: latex
+- identifier: twice
+ flag: >
+ @{
+ return isTrue(parameters.twice, '-twice');
+ }
+- identifier: format
+ flag: >
+ @{
+ return [ '-f', parameters.format ];
+ }
+- identifier: output
+ flag: >
+ @{
+ return [ '-o', parameters.output ];
+ }
+- identifier: options
+ flag: >
+ @{
+ if (isList(parameters.options)) {
+ return parameters.options;
+ } else {
+ throwError('I was expecting a list of options.');
+ }
+ }