mutool run¶
The run command executes a Javascript program, which has access to most of the features of the MuPDF library.
The command supports ECMAScript 5 syntax in strict mode.
mutool run script.js [ arguments ... ]
script.jsThe Javascript file which you would like to run.
[ arguments ... ]Any extra arguments you want to pass to the script. These are available in the global
scriptArgsarray.
If invoked without any arguments, it will drop you into an interactive REPL (read-eval-print-loop).
To exit call the quit() function or press Ctrl-D.
Environment¶
Command line arguments are accessible from the global scriptArgs array.
The name of the script is in the global scriptPath variable.
The following functions are only available in the mutool run shell:
require(module)Load a Javascript module.
repr(value)Convert any Javascript value to a string.
gc(report)Run the garbage collector to free up memory. Optionally report statistics on the garbage collection.
load(fileName)Load and execute script in “fileName”.
print(...)Print arguments to
stdout, separated by spaces and followed by a newline.quit()Exit the shell.
read(fileName)Read the contents of a file and return them as a UTF-8 decoded string.
readFile(fileName)Read the contents from a file and return them as a Buffer.
readline()Read one line of input from standard input and return it as a string.
write(...)Print arguments to
stdout, separated by spaces.
Node Compatibility¶
For compatibility with Node the following objects are provided:
process.argvThe command line arguments.
fs.readFileSyncRead a file into a buffer.
fs.writeFileSyncWrite a buffer to file.
The following ESM import statements are ignored:
import * as fs from "fs"
import * as mupdf from "mupdf"
If you only use these functions and otherwise stick to ES5 syntax and CommonJS imports, your scripts should be able to run both with mutool run and Node.