External scriptsΒΆ

Since marvin scripts are just Haskell values adding external scripts is as easy as importing a library.

Assuming you use cabal or stack for building your project you need to add the library to your .cabal file. Each library may define multiple scripts.

As with user scripts you need to wire the scripts into the main file.

If you manually create the main file, you add the script like a user script by importing the module and adding the scripts to the list of scripts.

If you use the automatic main file you can add external scripts by listing the modules to import in the external-scripts.json file. Currently the external-scripts.json only supports listing modules. This means each external script must be in its own module and be named script.

[
    "Marvin.Script.SomeScript",
    "Marvin.Script.AnotherScript",
    "SomeUserScript",
    "Some.Library.Script"
]

Note

The API around external-scripts.json is not stable and it will probably change in the future, although we might preserve backward compatibility.

You can join the discussion around its design on GitHub.