UNPKG

smoosic

Version:

<sub>[Github site](https://github.com/Smoosic/smoosic) | [source documentation](https://smoosic.github.io/Smoosic/release/docs/modules.html) | [change notes](https://aarondavidnewman.github.io/Smoosic/changes.html) | [application](https://smoosic.github.i

53 lines (45 loc) 1.35 kB
const fs = require('fs'); const readline = require('readline'); const process = require('process'); const args = process.argv.slice(2); const infiles = args[0]; const libfile = args[1]; const libObject = { format: "library", metadata: { name: "Hymn Arrangements", type: "collection", tags: [ "Sacred Music", "arrangements" ], }, children: [] }; const prefix = "https://aarondavidnewman.github.io/Smoosic/release/library/hymns/"; const childObject = { format: "mxml", metadata: { name: "Yama", composer: "various" } }; async function readLines() { const fileStream = fs.createReadStream(infiles); const rl = readline.createInterface({ input: fileStream, crlfDelay: Infinity }); // Note: we use the crlfDelay option to recognize all instances of CR LF // ('\r\n') in input.txt as a single line break. for await (const line of rl) { const child = JSON.parse(JSON.stringify(childObject)); child.url = prefix + line; child.metadata.name = line.substr(0, line.indexOf('.')); libObject.children.push(child); // console.log(JSON.stringify(child, null, 2)); // Each line in input.txt will be successively available here as `line`. } fs.writeFileSync(libfile, JSON.stringify(libObject, null, 1)); } readLines();