68 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| function create(Desi, options) {
 | |
|   var fsapi = Desi.fsapi;
 | |
|   options.blogdir = 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, opts) {
 | |
|     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 = Desi.YAML.stringify(file.contents);
 | |
|       }
 | |
|     });
 | |
| 
 | |
|     // TODO size
 | |
|     return fsapi.putfs(options.blogdir, files, opts);
 | |
|   };
 | |
| }
 | |
| 
 | |
| exports.create = create;
 |