             fulfil(stdout)
         )
     )
+
+findTheHoff = (startPath, filter, callback) ->
+    files=fs.readdirSync(startPath)
+    for i in [0...files.length]
+        filename=path.join(startPath,files[i])
+        stat = fs.lstatSync(filename)
+        if stat.isDirectory()
+            try findTheHoff(filename,filter, callback)
+            catch e
+            finally continue
+        else if path.parse(filename).base == filter
+            console.log filename
+            return callback(filename)
+
 spawnHoffServer = (command, args) ->
     resolved = false
     return new Promise((fulfil, reject) ->

        if hoffpath == 'pghoffserver'
            s = spawn(hoffpath, [''], { env: process.env, detached: true })
        else
            s = spawn('python', [ hoffpath ], { env: process.env, detached: true })

        s.stdout.on 'data', (data)      -> fulfil(data.toString()) if not resolved
        s.stderr.on 'data', (data)      -> fulfil('stderr ' + data.toString()) if not resolved

Promise = require('promise')
{exec, spawn} = require('child_process')
fs = require('fs')
path = require ('path')
os = require ('os')


cmd = (c) ->
    return new Promise((fulfil, reject) ->
