fs         = require 'fs'
 Seq        = require 'seq'
+findit     = require 'findit'
 Controller = require '../controller'
 
 YAML_EXT_PAT = /\.ya?ml$/i
  */
 class DataSourceController extends Controller
     name    : 'datasources'
-    dataDir : 'data/graphs'
+    dataDir : 'data/datasources'
     
     mapping :
         all : 'allData'
      * Returns a JSON listing of the datasource metadata files.
      */
     index : (req, res, next) ->
-        fs.readdir @dataDir, (err, files) ->
-            res.send do
-                files.filter -> /\.(json|ya?ml)$/i.test it
-                     .map    -> "/#{@dataDir}#it".replace YAML_EXT_PAT, '.json'
+        files = findit.sync @dataDir
+        # fs.readdir @dataDir, (err, files) ->
+        res.send do
+            files.filter -> /\.(json|ya?ml)$/i.test it
+                 .map    -> "#it".replace YAML_EXT_PAT, '.json'
     
     /**
      * Returns the aggregated JSON content of the datasource metadata files.
     allData : (req, res, next) ->
         data = {}
         files = []
-        Seq()
-            .seq fs.readdir, @dataDir, Seq
-            .flatten()
+        Seq(findit.sync @dataDir)
+            # .seq ~> @ok findit.sync @dataDir
+            # .flatten()
             .filter -> /\.(json|ya?ml)$/.test it
             .seq ->
                 files := @stack.slice()
             .flatten()
             .parMap_ (next, f) ~>
                 # console.log "fs.readFile '#CWD/data/#f'"
-                fs.readFile "#{@dataDir}/#f", 'utf8', next
+                fs.readFile f, 'utf8', next
             .parMap (text, i) ->
                 f = files[i]
                 # console.log "parsing file[#i]: '#f' -> text[#{text.length}]..."
 
 #!/usr/bin/env coco
 
-fs       = require 'fs'
-path     = require 'path'
+fs     = require 'fs'
+path   = require 'path'
+findit = require 'findit'
 {existsSync:exists} = path
 {exec, spawn} = require 'child_process'
 {mkdirp, mkdirpAsync} = require './mkdirp'
 app.get '/datasources/all', (req, res, next) ->
     data = {}
     files = []
-    Seq()
-        .seq fs.readdir, 'data/datasources', Seq
-        .flatten()
+    Seq(findit.sync 'data/datasources')
+        # .seq fs.readdir, 'data/datasources', Seq
+        # .flatten()
         .filter -> /\.(json|ya?ml)$/.test it
         .seq ->
             files := @stack.slice()
         .flatten()
         .parMap (f) ->
             # console.log "fs.readFile '#CWD/data/#f'"
-            fs.readFile "data/datasources/#f", 'utf8', this
+            fs.readFile f, 'utf8', this
         .parMap (text, i) ->
             f = files[i]
             # console.log "parsing file[#i]: '#f' -> text[#{text.length}]..."