| assets | ||
| fpp.osl | ||
| README.md | ||
fpp
origin os project manager (fork of opal)
additions (to opal)
include
include allows you to... well include other files that arent specified with import("name")
{
/* ... */
"include": ["./module.osl"]
}
icon
simple icon parameter in opal.json that sets the built osl file's icon
{
/* ... */
"icon": "icn code"
}
fpp also supports a file alongside opal.json called icon.icn, this will do the same thing as the parameter
Note
if there is both a parameter and icon.icn, fpp will default to the parameter
'asset' importing
fpp allows you to also include non osl files, such as js files,
lets say in the project structure
myProject
|- script.osl
\- randomScript.js
fpp allows you to do
myScript @= import("./randomScript.js")
log myScript // the contents of randomScript.js as a string
and have that be packaged alongside the .osl files,
Note
you will need
__import @= import;import @= i -> (i.endsWith(".osl") ? __import(i) open(i))in your base script.osl if you want this functionality without fpp, but isnt required to build as fpp automatically removes it
scripts system
terminal commands in opal.json that can be executed by fpp script <name>
{
...,
"scripts": {
"myScript": "echo hi!",
"myOtherScript": [
"echo im a command",
"echo im another command"
]
}
}
build global variable
fpp provides a build global variable with the structure:
{
"built": true/false,
"package": /* opal.json */
}
Note
similarly to imports, you will need
build ??= { built: false, package: import("./opal.json").JsonParse() }if you are running it without fpp, and fpp does also automatically remove this.
fpp count
a basic line of code counter for projects
fpp todo
displays all the // TODO: or // FIXME (and variations), nicely formatted