guv
Version:
Grid Utilization Virgilante
39 lines (28 loc) • 930 B
text/coffeescript
debug = require('debug')('guv:validate')
program = require 'commander'
fs = require 'fs'
config = require './config'
parse = (argv) ->
program
.option('-c --config <string>', 'Configuration string', String, '')
.option('-f --file <FILE.guv>', 'Configuration file', String, '')
.parse(argv)
# TODO: validate that variables used are known
# TODO: validate that config is not impossible to realise
normalize = (options) ->
options.config = process.env['GUV_CONFIG'] if not options.config
options.config = fs.readFileSync options.file, 'utf-8' if options.file
return options
# Throws if invalid
validate = (options) ->
throw new Error 'Configuration is empty' if not options.config
cfg = config.parse options.config
exports.main = () ->
options = parse process.argv
options = normalize options
try
validate options
catch e
console.log e.message
process.exit(1)
process.exit(0)