         return
     exists = bup = undefined
     async.series([
+        (cb) ->
+            fs.exists '/bups', (exists) ->
+                if not exists
+                    cb("/bups directory not mounted -- no bup access")
+                else
+                    cb()
         (cb) ->
             fs.exists join('/projects', opts.project_id), (_exists) ->
                 # not an error -- this means project was never used at all (and saved)

    winston.debug("delete_BUP('#{opts.project_id}')")
    rmdir("/bups/#{opts.project_id}", opts.cb)

# Assuming LIVE and SNAPSHOT are both deleted, sync BUP repo to GCS,
# then delete BUP from this machine.
exports.close_BUP = close_BUP = (opts) ->
    opts = defaults opts,
        database   : required

    dbg()
    bup = source = undefined
    async.series([
        (cb) ->
            fs.exists '/bups', (exists) ->
                if not exists
                    cb("/bups directory not mounted -- no bup access")
                else
                    cb()
        (cb) ->
            dbg("rsync bup repo from Google cloud storage -- first get list of available repos")
            misc_node.execute_code
