UNPKG

robusta

Version:

A tool for generating Backbone/CoffeeScript Node.js-based apps

49 lines (40 loc) 1.35 kB
pi = require './project_initializer.coffee' runner = require './runner.coffee' commands = "-h": description: "help" exec: -> print_usage() args: [] init: description: "initialize a project with the default structure" exec: -> pi.initialize_project() args: [] run: description: "watches your project for changes and runs the server" exec: (args) -> runner.run(args) args: [ {description: '<port>', default: 3000}] print_usage = -> console.log "" console.log "Here is how you use Robusta:" console.log "" console.log "Usage:" console.log " robusta [command] [args]" console.log "" console.log "Commands:" for key, value of commands value_names = ("#{arg.description}:#{arg.default}" for arg in value.args) first_part = " robusta #{key} #{value_names.join(' ')}" spacing = (' ' for x in [1..(30 - first_part.length)]).join('') console.log "#{first_part}#{spacing}#{value.description}" console.log "" execute_command = (command, args) -> command_data = commands[command] return print_usage() if !command_data if command_data.args.length for arg_num in [0..command_data.args.length-1] continue if args[arg_num] args[arg_num] = command_data.args[arg_num].default command_data.exec args args = process.argv.splice(2) return print_usage() if args.length <= 0 execute_command args[0], args.splice(1)