#! /usr/bin/env node // load configuraton from .env file (if exists) const dotenv = require('dotenv') dotenv.config() const program = require('commander'); const path = require('path') const { fetchFromMedium, pushToGhost, mediumToGhost, generateUserData, checkScissors, uploadDav, } = require ('./functions'); program .version('1.0.0-dev') .description('pull posts from Medium and add them to a Ghost blog'); program.command('fetch-medium ') .alias('fetch') .description('fetch a Medium post') .action((post_url) => { fetchFromMedium(post_url) .then((post) => { console.info(`"${post.title}" fetched successfully.`) }) }); program.command('push-ghost ') .alias('push') .description('push a downloaded Medium post to Ghost') .action((file) => { pushToGhost(file); }); program.command('medium-to-ghost ') .alias('import') .description('copy a Medium file over to Ghost') .action((mediumUrl) => { pushToGhost(mediumUrl); }); program.command('create-user ') .description('create ghost-import.json to import Medium user to Ghost') .action(async (username, email) => { const jsonOut = await generateUserData(username, email) .catch((err) => { console.log(`Error: ${err.error}`) return }) console.log(await jsonOut); }); program.command('webdav-test ') .description('[test command] upload stuff to WebDAV') .action(async (file) => { // decide path current_date = new Date(); var dir_path = path.join( process.env.WEBDAV_PATH_PREFIX, current_date.getUTCFullYear().toString(), current_date.getUTCMonth().toString(), 'test' // TODO: replace with article slug ) uploadDav(dir_path, file); }); program.command('check-scissors ') .description('[test command] check if an image matches the set separator') .action(async (file) => { console.log(await checkScissors(file)) }) program.parse(process.argv)