Skip to content

lucid-services/serviser-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Implementation of serviser AppInterface.
Create command line applications with serviser framework.

Usage

Load the plugin at the bottom of your index.js file:

require('serviser-shell'); //loads the plugin

Initialize a shell App in your app.js file:

service.buildShellApp('your-app-name-in-config.json5');
An example command definition:
const router = service.appManager
    .get('your-app-name-in-config.json5')
    .buildRouter({
        version: 1,
        url: ':'
    });

const route = router.buildRoute({
    url: 'upload',
    summary: 'Upload image',
})

route.acceptsContentType('image/png');

route.validate({
    properties: {
        title: {
            type: ['string'],
            $desc: 'Image title'
        }
    }
}, 'params');

route.main(function(req, res) {
    const remoteResource = new AmazonResource(req.params);

    remoteResource.setEncoding('utf8');
    req.pipe(remoteResource).pipe(res);
});

Now the above command will be available through the serviser executable:

project/root> ./node_modules/.bin/serviser

node_modules/.bin/serviser <command> [options]

Commands:
  run [options..]   Starts serviser app - expects it to be located under cwd    [aliases: start, serve]
  get:config [key]  Dumbs resolved service configuration
  :upload           Upload image

Options:
  --help, -h  Show help                                                         [boolean]
  --config    Custom config file destination                                    [string]
  --version   Prints serviser version                                           [boolean]


project/root>
project/root>
project/root> ./node_modules/.bin/serviser :upload --help

node_modules/.bin/serviser :upload

Options:
  --help, -h  Show help                          [boolean]
  --config    Custom config file destination     [string]
  --version   Prints serviser version            [boolean]
  --title     Image title                        [string]

project/root> cat ./dog.png | ./node_modules/.bin/serviser :upload --title Loky
https://cloudvendor.com/locky_dog.png

project/root>

About

User-defined shell commands for `serviser` based projects

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published