X-Git-Url: https://git.r.bdr.sh/rbdr/blog/blobdiff_plain/863ccf104e7cae08268b9e46896b82a9918a22fd..0307770b088afcc207bc5d84c63f8b681db0aebf:/bin/blog.js?ds=sidebyside diff --git a/bin/blog.js b/bin/blog.js index 18443aa..3f5db43 100755 --- a/bin/blog.js +++ b/bin/blog.js @@ -1,13 +1,21 @@ #!/usr/bin/env node -'use strict'; - -const Config = require('../config/config'); -const Blog = require('..'); -const Minimist = require('minimist'); +import Config from '../config/config.js'; +import Blog from '../lib/blog.js'; +import Minimist from 'minimist'; const internals = { blog: new Blog(Config), - expectedKeys: ['add', 'update', 'publish'], + expectedKeys: [ + 'add', + 'generate', + 'update', + 'publish', + 'publish-archive', + 'add-remote', + 'remove-remote', + 'sync-up', + 'sync-down', + 'version'], // Application entry point. Reads arguments and calls the // corresponding method from the blog lib @@ -22,6 +30,11 @@ const internals = { const value = parsedArguments[argument]; + if (argument === 'version') { + console.log('6.0.0'); + return; + } + if (argument === 'add') { await internals.blog.add(value); return; @@ -32,10 +45,40 @@ const internals = { return; } + if (argument === 'generate') { + await internals.blog.generate(); + return; + } + if (argument === 'publish') { await internals.blog.publish(value); return; } + + if (argument === 'publish-archive') { + await internals.blog.publishArchive(value); + return; + } + + if (argument === 'add-remote') { + await internals.blog.addRemote(value); + return; + } + + if (argument === 'remove-remote') { + await internals.blog.removeRemote(); + return; + } + + if (argument === 'sync-up') { + await internals.blog.syncUp(); + return; + } + + if (argument === 'sync-down') { + await internals.blog.syncDown(); + return; + } } } @@ -75,9 +118,16 @@ const internals = { _printUsage() { console.error('\nUsage:\n'); - console.error('blog --add path/to/blog_post\t\t(creates new blog post)'); - console.error('blog --update path/to/blog_post\t(updates latest blog post)'); - console.error('blog --publish \t\t\t(publishes the blog)'); + console.error('blog --add \t\t(creates new blog post)'); + console.error('blog --update \t\t(updates latest blog post)'); + console.error('blog --generate \t\t\t(generates the blog assets)'); + console.error('blog --publish \t\t(publishes the blog to an S3 bucket)'); + console.error('blog --publish-archive \t(publishes the archive to a remote host)'); + console.error('blog --add-remote \t\t(adds or updates a git remote to sync with)'); + console.error('blog --remove-remote \t\t\t(removes the git remote)'); + console.error('blog --sync-up \t\t\t\t(pushes to the git remote if configured)'); + console.error('blog --sync-down \t\t\t(pulls from the git remote if configured)'); + console.error('blog --version \t\t\t\t(print the version)'); } };