id = "arara" name = "arara" homepage = "https://islandoftex.gitlab.io/arara/" description = "arara is a TeX automation tool based on rules and directives." # The macaw, from the manual site's SVG favicon. icon = "https://islandoftex.gitlab.io/arara/favicon.svg" executables = ["arara"] [dotfiles] # https://islandoftex.gitlab.io/arara/manual/configuration/ — arara looks for a # configuration file under four names, in this order: ".araraconfig.yaml → # araraconfig.yaml → .arararc.yaml → arararc.yaml". It checks two places: the # working directory (the local configuration, which is per-project and not a # dotfile) and "HOME which is the home directory of the current user" (the # global configuration). Only the home-directory copy is user-level, so only it # is listed — under all four names, because which one a user picked is a fact # about their machine and arara reads whichever it finds first. paths = [ "~/.araraconfig.yaml", "~/araraconfig.yaml", "~/.arararc.yaml", "~/arararc.yaml", ] exclude = [] # An arara configuration is language, verbosity, the loop limit, filename # patterns and the list of directories to search for rules. Nothing in it is a # credential. secret = [] # arara re-reads the configuration on every run, so a rewrite between runs is # picked up by the next one and nothing holds the file open. side_effect = false # No machine_lines: the settings are language, verbosity, the loop limit and # the filename patterns, which a user wants on every machine. The rule search # directories are the one candidate, but the manual documents placeholders for # writing them portably as well as plain absolute paths, so a rule keyed on # them would strip a portable value as often as a machine-local one and is left # out rather than guessed at. [commands] format = 1 label = "Run arara" description = "Process TeX files according to their arara directives. Preamble and header options beyond the basics are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = true, short_bundles = true } [[commands.source]] id = "manual" kind = "manual" url = "https://islandoftex.gitlab.io/arara/" evidence = """ -l, --log Generate a log output -v, --verbose / -s, --silent Print the command output -n, --dry-run Go through all the motions of running a -H, --header Extract directives only in the file header -t, --timeout INT Set the execution timeout (in milliseconds) -L, --language TEXT Set the application language -m, --max-loops INT Set the maximum number of loops (> 0) -d, --working-directory DIRECTORY """ [[commands.field]] id = "files" label = "Files" type = "path" position = 0 multiple = true path = { kind = "file", role = "input" } sources = ["manual"] [[commands.field]] id = "verbose" label = "Print command output" type = "boolean" option = ["--verbose", "-v"] sources = ["manual"] [[commands.field]] id = "log" label = "Write log" type = "boolean" option = ["--log", "-l"] sources = ["manual"] [[commands.field]] id = "dry_run" label = "Dry run" description = "Go through the motions without running any command." type = "boolean" option = ["--dry-run", "-n"] sources = ["manual"] [[commands.field]] id = "header" label = "Header directives only" type = "boolean" option = ["--header", "-H"] sources = ["manual"] [[commands.field]] id = "timeout" label = "Timeout (ms)" type = "integer" option = ["--timeout", "-t"] sources = ["manual"] [[commands.field]] id = "max_loops" label = "Maximum loops" type = "integer" option = ["--max-loops", "-m"] sources = ["manual"] [[commands.field]] id = "working_directory" label = "Working directory" type = "path" option = ["--working-directory", "-d"] path = { kind = "directory", role = "input" } sources = ["manual"] [[commands.task]] id = "run" label = "Run on files" fields = ["files", "verbose", "log", "working_directory"] required = ["files"] [[commands.task]] id = "dry-run" label = "Dry run" set = { dry_run = [true] } fields = ["files", "dry_run", "verbose"] required = ["files"] [[commands.group]] id = "basic" label = "Basic" fields = ["files", "verbose", "log", "dry_run"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["header", "timeout", "max_loops", "working_directory"]