X-Git-Url: https://git.r.bdr.sh/rbdr/blog/blobdiff_plain/397444675d7156acd6495223a3b15175d6853589..a9c02cac1fde01ac28dc1241d1e63f85a1ff03a2:/bin/blog.js diff --git a/bin/blog.js b/bin/blog.js index 5d27d4a..a9e2d1e 100755 --- a/bin/blog.js +++ b/bin/blog.js @@ -1,13 +1,24 @@ #!/usr/bin/env node 'use strict'; +const Package = require('../package.json'); const Config = require('../config/config'); const Blog = require('..'); const Minimist = require('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 +33,11 @@ const internals = { const value = parsedArguments[argument]; + if (argument === 'version') { + console.log(Package.version); + return; + } + if (argument === 'add') { await internals.blog.add(value); return; @@ -32,12 +48,43 @@ 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; + } } } + console.log('Not yet implemented'); } catch (err) { @@ -74,9 +121,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)'); } };