#!/usr/bin/env node // use a mock DOM so we can run mithril on the server require('mithril/test-utils/browserMock')(global) const FimFic2Epub = require('../dist/fimfic2epub') const fs = require('fs') const STORY_ID = process.argv[2] const ffc = new FimFic2Epub(STORY_ID) const outputStdout = process.argv[3] === '-' || process.argv[3] === '/dev/stdout' if (outputStdout) { console.log = console.error console.log('Outputting to stdout') } ffc.on('progress', (percent, status) => { /* if (status) { console.log('fimfic2epub: ' + status) } */ }) ffc.fetchAll() .then(ffc.build.bind(ffc)) .then(() => { let filename = process.argv[3] || ffc.filename let stream if (outputStdout) { stream = process.stdout } else { stream = fs.createWriteStream(filename) } ffc.streamFile(null) .pipe(stream) .on('finish', () => { if (!outputStdout) { console.log('Saved story as ' + filename) } }) }) .catch((err) => { if (err && err.stack) { console.error(err.stack) } else { console.error('Error: ' + (err || 'Unknown error')) } process.exit(1) })