Using the Command-Line Interface
The CLI is built for automation: everything the GUI can do is available as flags, and every run produces a predictable exit code so scripts can branch on the result without parsing output text.
The examples below use ./outline-extractor-cli.sh, the macOS and Linux launcher. On Windows
run outline-extractor-cli.cmd instead - it takes exactly the same arguments and returns the same
exit codes, so every example translates by swapping the launcher name.
|
Running an extraction
./outline-extractor-cli.sh extract \
--extractor essbase-xml --extractor-option file-path=outline.xml \
--writer documentation --writer-option output-directory=./out \
--writer-option include-headers=true
--extractor/--writer select a provider by ID (see Extractors and
Writers for the full list). --extractor-option/--writer-option set one
KEY=VALUE property each, and can be repeated as many times as needed.
Configuration files
Instead of (or alongside) command-line flags, a JSON configuration file can supply the extractor, writer, and their options:
{
"extractor": "essbase-xml",
"writer": "documentation",
"extractorOptions": { "file-path": "outline.xml" },
"writerOptions": { "output-directory": "./out", "include-headers": "true" }
}
./outline-extractor-cli.sh extract --config extraction.ngoe.json
Configuration is loaded first; any --extractor/--writer/--extractor-option/--writer-option
flags on the command line override it for that run. Pass --save-config <file> to write the
effective configuration (config file plus any overrides) back out as JSON - useful for capturing
exactly what ran, or for turning a one-off command line into a reusable config file. These files are
also interchangeable with the GUI’s Load/Save Configuration menu items.
Referencing a secret instead of storing it
Any option value - typically password - can be exactly ${ENV:VARIABLE_NAME} instead of a
literal value, to read it from an environment variable at the moment it’s actually needed rather
than storing it in the file:
{
"extractor": "essbase-java-members",
"extractorOptions": { "server": "myserver", "username": "admin", "password": "${ENV:ESSBASE_PASSWORD}" },
"writer": "console"
}
If ESSBASE_PASSWORD isn’t set when this actually runs, the command fails immediately with exit
code 3 and a clear message naming the property and variable - never a silent fallback to some
other value. --save-config always writes the reference back out, never the resolved secret, even
right after a run that used it - so a config file built this way is safe to commit, email, or hand
to someone else. The whole value has to match this pattern exactly; it isn’t substituted inside a
larger string.
Discovering providers
./outline-extractor-cli.sh describe-providers
Lists every registered extractor and writer with its property definitions (name, type, whether it’s
required, its default value, and a description) - the authoritative source for what options a given
provider accepts, rather than trial and error, and the source this manual’s own property tables were
generated from. Add --format json for machine-readable output.
Output and exit codes
Failures are reported the same way whether they come from the CLI or the GUI: a one-line
Error [CODE]: message on stderr (or a {"error": {…}} object with --format json), plus one of
a small, stable set of exit codes:
|
Success |
|
Malformed command-line syntax |
|
A configuration problem - bad or missing option value, unknown provider ID |
|
Valid options, but the extractor or writer failed against a real system |
|
An unclassified/internal error |
Add --verbose to also print the underlying stack trace to stderr.