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