Skip to content

Instantly share code, notes, and snippets.

@mmckegg
Created December 23, 2014 09:02
Show Gist options
  • Save mmckegg/df19ad6284c1dbc3ac60 to your computer and use it in GitHub Desktop.
Save mmckegg/df19ad6284c1dbc3ac60 to your computer and use it in GitHub Desktop.
loop drop script for bundling up specified setups (and related chunks, samples)
var fs = require('fs')
var source = '/Users/matt/Documents/Loop Drop'
var output = '/Users/matt/Projects/Destroy With Science/Drop'
exportSetup('DWS-Time Travellers Die')
function exportSetup(name){
var data = JSON.parse(fs.readFileSync(source + '/setups/' + name + '.json'))
data.chunks.forEach(function(chunk){
if (chunk.node === 'external' && chunk.src){
exportChunk(chunk.src)
}
})
fs.writeFileSync(output + '/setups/' + name + '.json', JSON.stringify(data))
}
function exportChunk(src){
console.log('chunk', src)
var data = JSON.parse(fs.readFileSync(source + '/' + src))
var slots = (data.triggerSlots || []).concat(data.slots || [])
slots.forEach(function(slot){
if (Array.isArray(slot.sources)){
slot.sources.forEach(function(source){
if (typeof source.url === 'string'){
exportSample(source.url)
}
})
}
})
fs.writeFileSync(output + '/' + src, JSON.stringify(data))
}
function exportSample(url){
console.log(url)
fs.createReadStream(source + '/samples/' + url).pipe(fs.createWriteStream(output + '/samples/' + url))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment