|
@@ -31,29 +31,29 @@ async function init () {
|
|
|
console.log('Error: need sampleDir and imageDir. Exiting.')
|
|
|
process.exit(1)
|
|
|
}
|
|
|
- console.log('sampleDir: ' + sampleDir)
|
|
|
- console.log('imageDir: ' + imageDir)
|
|
|
-
|
|
|
- let pageFormat = 'Endless'
|
|
|
- pageWidth = Number.parseInt(pageWidth)
|
|
|
- pageHeight = Number.parseInt(pageHeight)
|
|
|
- const endlessPage = !(pageHeight > 0 && pageWidth > 0)
|
|
|
- if (!endlessPage) {
|
|
|
- pageFormat = `${pageWidth}x${pageHeight}`
|
|
|
- }
|
|
|
|
|
|
const DEBUG = debugFlag === '--debug'
|
|
|
// const debugSleepTime = Number.parseInt(process.env.GENERATE_DEBUG_SLEEP_TIME) || 0; // 5000 works for me [sschmidTU]
|
|
|
if (DEBUG) {
|
|
|
- console.log(' note that --debug slows down the script by about 0.3s per file (through console.logs).')
|
|
|
- console.log('debug sleep time: ' + debugSleepTimeString)
|
|
|
+ console.log(' (note that --debug slows down the script by about 0.3s per file, through logging)')
|
|
|
const debugSleepTimeMs = Number.parseInt(debugSleepTimeString)
|
|
|
if (debugSleepTimeMs > 0) {
|
|
|
+ console.log('debug sleep time: ' + debugSleepTimeString)
|
|
|
await sleep(Number.parseInt(debugSleepTimeMs))
|
|
|
// [VSCode] apparently this is necessary for the debugger to attach itself in time before the program closes.
|
|
|
// sometimes this is not enough, so you may have to try multiple times or increase the sleep timer. Unfortunately debugging nodejs isn't easy.
|
|
|
}
|
|
|
}
|
|
|
+ debug('sampleDir: ' + sampleDir, DEBUG)
|
|
|
+ debug('imageDir: ' + imageDir, DEBUG)
|
|
|
+
|
|
|
+ let pageFormat = 'Endless'
|
|
|
+ pageWidth = Number.parseInt(pageWidth)
|
|
|
+ pageHeight = Number.parseInt(pageHeight)
|
|
|
+ const endlessPage = !(pageHeight > 0 && pageWidth > 0)
|
|
|
+ if (!endlessPage) {
|
|
|
+ pageFormat = `${pageWidth}x${pageHeight}`
|
|
|
+ }
|
|
|
|
|
|
// ---- hacks to fake Browser elements OSMD and Vexflow need, like window, document, and a canvas HTMLElement ----
|
|
|
const { JSDOM } = require('jsdom')
|
|
@@ -149,7 +149,7 @@ async function init () {
|
|
|
for (const sampleFilename of sampleDirFilenames) {
|
|
|
if (filterRegex === 'allSmall') {
|
|
|
if (sampleFilename.match('^(Actor)|(Gounod)')) { // TODO maybe filter by file size instead
|
|
|
- console.log('DEBUG: filtering big file: ' + sampleFilename)
|
|
|
+ debug('filtering big file: ' + sampleFilename, DEBUG)
|
|
|
continue
|
|
|
}
|
|
|
}
|
|
@@ -158,17 +158,17 @@ async function init () {
|
|
|
// console.log('found musicxml/mxl: ' + sampleFilename)
|
|
|
samplesToProcess.push(sampleFilename)
|
|
|
} else {
|
|
|
- console.log('discarded file/directory: ' + sampleFilename)
|
|
|
+ debug('discarded file/directory: ' + sampleFilename, DEBUG)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// filter samples to process by regex if given
|
|
|
if (filterRegex && filterRegex !== '' && filterRegex !== 'all' && filterRegex !== 'allSmall') {
|
|
|
- console.log('filtering samples for regex: ' + filterRegex)
|
|
|
+ debug('filtering samples for regex: ' + filterRegex, DEBUG)
|
|
|
samplesToProcess = samplesToProcess.filter((filename) => filename.match(filterRegex))
|
|
|
- console.log(`found ${samplesToProcess.length} matches: `)
|
|
|
+ debug(`found ${samplesToProcess.length} matches: `, DEBUG)
|
|
|
for (let i = 0; i < samplesToProcess.length; i++) {
|
|
|
- console.log(samplesToProcess[i])
|
|
|
+ debug(samplesToProcess[i], DEBUG)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -238,7 +238,7 @@ async function init () {
|
|
|
const imageData = dataUrl.split(';base64,').pop()
|
|
|
const imageBuffer = Buffer.from(imageData, 'base64')
|
|
|
|
|
|
- console.log('got image data, saving to: ' + pageFilename)
|
|
|
+ debug('got image data, saving to: ' + pageFilename, DEBUG)
|
|
|
fs.writeFileSync(pageFilename, imageBuffer, { encoding: 'base64' })
|
|
|
}
|
|
|
}) // end render then
|