JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
client.coffee: parse and handle commandline arguments
authorJason Woofenden <jason@jasonwoof.com>
Mon, 11 Feb 2013 20:51:08 +0000 (15:51 -0500)
committerJason Woofenden <jason@jasonwoof.com>
Mon, 11 Feb 2013 20:51:08 +0000 (15:51 -0500)
client.coffee [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index a378480..8ae4715
@@ -1,3 +1,5 @@
+#!/usr/bin/coffee
+
 fs = require 'fs'
 async = require 'async'
 af = require './api.coffee'
 fs = require 'fs'
 async = require 'async'
 af = require './api.coffee'
@@ -74,3 +76,25 @@ login = (callback) ->
 
 exports.new_session = ->
        return new Session()
 
 exports.new_session = ->
        return new Session()
+
+usage = ->
+       console.log "usage: #{process.argv[0]} #{process.argv[1]} command [args...]"
+       console.log "valid commands are:"
+       for k, v of af
+               console.log "\t#{k}" unless k is 'login'
+
+# parse and act on commandline arguments unless we were require()d as a module
+if require.main is module
+       args = process.argv[2..]
+       if args.length is 0
+               usage()
+       else if not af[args[0]]
+               console.log "unknown command \"#{args[0]}\""
+               usage()
+       else
+               session = new Session()
+               session.api args[0], args[1..], (err, result) ->
+                       if err?
+                               console.log "error: ", err
+                       if result?
+                               console.log "result: ", result