ryba-repos
Version:
Ryba repository handler for ryba working environment
53 lines (50 loc) • 1.65 kB
text/coffeescript
util = require 'util'
parameters = require 'parameters'
repos = require './repos'
PrettyError = require('pretty-error')
pe = new PrettyError()
error = (err) ->
# console.log err.message if err
console.log pe.render err if err
return !!err
params = parameters require './params'
args = params.parse()
if commands = params.helping args
return process.stdout.write params.help commands
switch args.command
when 'help' then console.log params.help args.name
when 'list'
repos(args).list args, (err, systems) ->
return if error err
for system, repos of systems
process.stdout.write "#{system}\n"
for repo in repos
process.stdout.write " #{repo}\n"
when 'sync'
args.urls ?= []
throw Error "Incoherent Arguments Length" if args.urls.length and args.repos.length isnt args.urls.length
args.repos = for repo, i in args.repos
repo: repo, url: args.urls[i]
repos().sync args, error
when 'start'
repos().start args, (err, status) ->
if err
process.stdout.write err.message
else if status
process.stdout.write "Server started and listening on port #{args.port}"
else
process.stdout.write 'Server already started'
process.stdout.write '\n'
when 'stop'
repos().stop args, (err, status) ->
if err
process.stdout.write err.message
else if status
process.stdout.write 'Server stopped'
else
process.stdout.write 'Server already stopped'
process.stdout.write '\n'
when 'remove'
repos(args).remove args.repo, error
else
throw Error "Unsupported Command: #{args.command}"