!config
# Arara, the cool TeX automation tool
# Copyright (c) 2023, Island of TeX
# All rights reserved.
#
# This rule is part of arara.
identifier: dvipspdf
name: DVIPSPDF
authors:
- Island of TeX
commands:
- name: The DVIPS program
  command: >
    @{
        base = getBasename(reference.fileName).concat('.dvi');
        out = getBasename(reference.fileName).concat('.ps');
        return getCommand('dvips', base, '-o', out, options1);
    }
- name: The PS2PDF program
  command: >
    @{
        base = getBasename(reference.fileName).concat('.ps');
        out = getBasename(output[0]).concat('.pdf');
        return getCommand('ps2pdf', options2, base, '-o', out);
    }
arguments:
- identifier: output
  flag: >
    @{
        isEmpty(parameters.output, reference.fileName, parameters.output)
    }
  default: ''
- identifier: options1
  flag: >
    @{
        if (isList(parameters.options1)) {
            return parameters.options1;
        }
        else {
            throwError('I was expecting a list of options.');
        }
    }
- identifier: options2
  flag: >
    @{
        if (isList(parameters.options2)) {
            return parameters.options2;
        }
        else {
            throwError('I was expecting a list of options.');
        }
    }
