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}]..."