From: dsc Date: Wed, 4 Apr 2012 21:01:57 +0000 (-0700) Subject: Updates datasource controller to search recursively. X-Git-Url: http://git.less.ly:3516/?a=commitdiff_plain;h=40cfc46d8fbe066a8489323ff60a09ce8622e226;p=limn.git Updates datasource controller to search recursively. --- diff --git a/lib/server/controllers/datasource.co b/lib/server/controllers/datasource.co index b77d4e2..c556f23 100644 --- a/lib/server/controllers/datasource.co +++ b/lib/server/controllers/datasource.co @@ -1,5 +1,6 @@ fs = require 'fs' Seq = require 'seq' +findit = require 'findit' Controller = require '../controller' YAML_EXT_PAT = /\.ya?ml$/i @@ -11,7 +12,7 @@ YAML_EXT_PAT = /\.ya?ml$/i */ class DataSourceController extends Controller name : 'datasources' - dataDir : 'data/graphs' + dataDir : 'data/datasources' mapping : all : 'allData' @@ -22,10 +23,11 @@ class DataSourceController extends Controller * 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. @@ -33,9 +35,9 @@ class DataSourceController extends Controller 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() @@ -44,7 +46,7 @@ class DataSourceController extends Controller .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}]..." diff --git a/lib/server/server.co b/lib/server/server.co index afd3f66..a8942ac 100755 --- a/lib/server/server.co +++ b/lib/server/server.co @@ -1,7 +1,8 @@ #!/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' @@ -146,9 +147,9 @@ YAML_EXT_PAT = /\.ya?ml$/i 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() @@ -157,7 +158,7 @@ app.get '/datasources/all', (req, res, next) -> .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}]..." diff --git a/package.co b/package.co index b7698fb..f98b042 100644 --- a/package.co +++ b/package.co @@ -25,6 +25,7 @@ dependencies : 'js-yaml' : '>= 0.3.5' 'hashish' : '>= 0.0.4' 'backbone' : '>= 0.9.1' + 'findit' : '>= 0.1.2' devDependencies : 'buildtools' : 'https://github.com/dsc/node-buildtools/tarball/master' 'expresso' : '>= 0.9.2' diff --git a/package.json b/package.json index 838f439..35b6ffa 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "underscore.string": ">= 2.0.0", "js-yaml": ">= 0.3.5", "hashish": ">= 0.0.4", - "backbone": ">= 0.9.1" + "backbone": ">= 0.9.1", + "findit": ">= 0.1.2" }, "devDependencies": { "buildtools": "https://github.com/dsc/node-buildtools/tarball/master",