works in iojs and browser :-)
This commit is contained in:
		
							parent
							
								
									5f1fb35758
								
							
						
					
					
						commit
						a6ff165e6b
					
				
							
								
								
									
										13
									
								
								desirae.js
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								desirae.js
									
									
									
									
									
								
							@ -16,11 +16,12 @@
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!exports.window) {
 | 
					  if (!exports.window) {
 | 
				
			||||||
    Desi.sha1sum  = require('./lib/node-adapters').sha1sum;
 | 
					    Desi.sha1sum    = require('./lib/node-adapters').sha1sum;
 | 
				
			||||||
    Desi.fsapi    = require('./lib/node-adapters').fsapi;
 | 
					    Desi.fsapi      = require('./lib/node-adapters').fsapi;
 | 
				
			||||||
 | 
					    Desi.realFsapi  = require('./lib/node-adapters').realFsapi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // adds helper methods to fsapi
 | 
					    // adds helper methods to fsapi
 | 
				
			||||||
    require('./lib/desirae-utils').create(Desi);
 | 
					    require('./lib/utils').create(Desi);
 | 
				
			||||||
    // adds Desi.Frontmatter
 | 
					    // adds Desi.Frontmatter
 | 
				
			||||||
    require('./lib/frontmatter').create(Desi);
 | 
					    require('./lib/frontmatter').create(Desi);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -245,7 +246,11 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // read config and such
 | 
					  // read config and such
 | 
				
			||||||
  Desi.init = function (desi) {
 | 
					  Desi.init = function (desi, env) {
 | 
				
			||||||
 | 
					    if (!exports.window) {
 | 
				
			||||||
 | 
					      // TODO pull state out of this later
 | 
				
			||||||
 | 
					      Desi.realFsapi.create(Desi, env);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    // config.yml, data.yml, site.yml, authors
 | 
					    // config.yml, data.yml, site.yml, authors
 | 
				
			||||||
    return PromiseA.all([Desi.fsapi.getAllConfigFiles()/*, fsapi.getBlogdir()*/]).then(function (plop) {
 | 
					    return PromiseA.all([Desi.fsapi.getAllConfigFiles()/*, fsapi.getBlogdir()*/]).then(function (plop) {
 | 
				
			||||||
      var arr = plop[0]
 | 
					      var arr = plop[0]
 | 
				
			||||||
 | 
				
			|||||||
@ -184,7 +184,7 @@
 | 
				
			|||||||
      });
 | 
					      });
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Desi.fsapi = fsapi = {};
 | 
					    Desi.fsapi = fsapi = Desi.fsapi || {};
 | 
				
			||||||
    fsapi.getMeta = function (collections, opts) {
 | 
					    fsapi.getMeta = function (collections, opts) {
 | 
				
			||||||
      console.log('dm sub 0');
 | 
					      console.log('dm sub 0');
 | 
				
			||||||
      opts = opts || {};
 | 
					      opts = opts || {};
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										74
									
								
								lib/node-adapters/fsapi-real.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								lib/node-adapters/fsapi-real.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					'use strict';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var PromiseA = require('bluebird').Promise
 | 
				
			||||||
 | 
					  , fs = PromiseA.promisifyAll(require('fs'))
 | 
				
			||||||
 | 
					  ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function create(Desi, options) {
 | 
				
			||||||
 | 
					  var fsapi = Desi.fsapi
 | 
				
			||||||
 | 
					    ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  options.blogdir = options.working_path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsapi.getMeta = function (dirnames, opts) {
 | 
				
			||||||
 | 
					    opts = opts || {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var extensions = ''
 | 
				
			||||||
 | 
					      , dotfiles = ''
 | 
				
			||||||
 | 
					      , contents = ''
 | 
				
			||||||
 | 
					      , sha1sum = ''
 | 
				
			||||||
 | 
					      ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (Array.isArray(opts.extensions)) {
 | 
				
			||||||
 | 
					      extensions = '&extensions=' + opts.extensions.join(','); // md,markdown,jade,htm,html
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (opts.dotfiles) {
 | 
				
			||||||
 | 
					      dotfiles = '&dotfiles=true';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (opts.contents) {
 | 
				
			||||||
 | 
					      contents = '&contents=true';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (false === opts.sha1sum) {
 | 
				
			||||||
 | 
					      sha1sum = '&sha1sum=false';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return fsapi.walk.walkDirs(options.blogdir, dirnames, opts);
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsapi.getContents = function (filepaths) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return fsapi.getfs(options.blogdir, filepaths);
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsapi.getCache = function () {
 | 
				
			||||||
 | 
					    return fs.readFileAsync(options.blogdir, '/cache.json').catch(function (/*e*/) {
 | 
				
			||||||
 | 
					      return {};
 | 
				
			||||||
 | 
					    }).then(function (obj) {
 | 
				
			||||||
 | 
					      return obj;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsapi.copy = function (files) {
 | 
				
			||||||
 | 
					    // TODO size
 | 
				
			||||||
 | 
					    return fsapi.copyfs(options.blogdir, files);
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsapi.putFiles = function (files) {
 | 
				
			||||||
 | 
					    files.forEach(function (file) {
 | 
				
			||||||
 | 
					      if (!file.contents || 'string' === typeof file.contents) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (/\.json$/i.test(file.path)) {
 | 
				
			||||||
 | 
					        file.contents = JSON.stringify(file.contents);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      else if (/\.ya?ml$/i.test(file.path)) {
 | 
				
			||||||
 | 
					        file.contents = exports.jsyaml.dump(file.contents); 
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO size
 | 
				
			||||||
 | 
					    return fsapi.putfs(options.blogdir, files);
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exports.create = create;
 | 
				
			||||||
@ -2,3 +2,4 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
exports.fsapi = require('./fsapi');
 | 
					exports.fsapi = require('./fsapi');
 | 
				
			||||||
exports.sha1sum = require('./sha1sum').sha1sum;
 | 
					exports.sha1sum = require('./sha1sum').sha1sum;
 | 
				
			||||||
 | 
					exports.realFsapi = require('./fsapi-real');
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user