!config # Arara, the cool TeX automation tool # Copyright (c) 2020, Island of TeX # All rights reserved. # # This rule is part of arara. identifier: texindy name: TeXindy authors: - Island of TeX commands: - name: The TeXindy software command: > @{ base = getBasename(reference); infile = base.concat('.').concat(input); outfile = [ '-o', base.concat('.').concat(output) ]; logfile = [ '-t', base.concat('.').concat(log) ]; return getCommand('texindy', quiet, markup, modules, codepage, language, logfile, outfile, options, infile); } arguments: - identifier: quiet flag: > @{ isTrue(parameters.quiet, '-q') } - identifier: modules flag: > @{ elements = []; if (isList(parameters.modules)) { foreach (module : parameters.modules) { elements.add('-M'); elements.add(module); } return elements; } else { throwError('I was expecting a list of options.'); } } - identifier: codepage flag: > @{ [ '-C', parameters.codepage ] } - identifier: language flag: > @{ [ '-L', parameters.language ] } - identifier: markup flag: > @{ if ([ 'latex', 'xelatex', 'omega' ].contains(parameters.markup)) { return [ '-I', parameters.markup ]; } else { throwError('The provided markup is invalid.'); } } - identifier: input flag: > @{ parameters.input } default: idx - identifier: output flag: > @{ parameters.output } default: ind - identifier: log flag: > @{ parameters.log } default: ilg - identifier: options flag: > @{ if (isList(parameters.options)) { return parameters.options; } else { throwError('I was expecting a list of options.'); } }