maestro-roku
v0.72.0
Published
A development platform for building roku channels in brighterscript
Downloads
600
Maintainers
Readme
A development platform for building roku channels in brighterscript
Why maestro?
Maestro Makes roku development easier, especially for experienced software engineers from other platforms
I believe that experienced developers from android, ios, c#, web, node, etc, should be able to be productive on a roku app in no more than a week, just as they would on any other platform. So I wrote maestro to make that possible.
Maestro is built to:
- Raise velocity
- Increase productivity
- Reduce learning
- Simply cross-skilling
- Make roku development more fun
- Produce roku apps that can be maintained by non roku developer
- Produce roku apps that can be unit tested easily
- Write code that can be tested and breakpoint debugged, outside of SG views (which are slow as hell, and prone to crashing when breakpoint debugging)
Quick start
- Clone the sample project and follow the instructions there
Docs
Maestro-roku docs can be found here
IMPORTANT!! ropm hook
Because of the way that maestro plugin generates certain files, ropm ~can~ will cause errors when you install maestro. You will have to include a script to fix any of these broken files, and run it after you ropm hook.
files
scripts/maestro-ropm-hook.js
/* eslint-disable github/array-foreach */
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable @typescript-eslint/no-require-imports */
const fs = require('fs-extra');
const path = require('path');
let sourceDir = path.join(__dirname, '..', 'src', 'components', 'roku_modules', 'maestro');
try {
fs.readdirSync(sourceDir).forEach(file => {
let filePath = path.join(sourceDir, file);
if (filePath.endsWith('Task.xml')) {
let text = fs.readFileSync(filePath, 'utf8');
let r = /\/roku_modules\/rokucommunity_bslib/gim;
text = text.replace(r, '/roku_modules/maestro');
fs.writeFileSync(filePath, text);
}
});
} catch (e) {
}
package.json
Change your ropm task, as follows. in package.json, scripts:
"ropm": "node scripts/maestro-ropm-hook.js ropm copy",