Example #1
0
function assertDirEqual(one, two){
  var ones = readdir(one);
  var twos = readdir(two);
  assert.deepEqual(ones, twos);
  ones.forEach(function(rel){
    var file = read(resolve(one, rel));
    var other = read(resolve(two, rel));
    if (utf8(file) && utf8(other)) {
      assert.equal(file.toString(), other.toString());
    } else {
      assert(equal(file, other));
    }
  });
}
Example #2
0
            Object.keys(template).forEach((key) => {
                const dist = mustache.render(template[key], result);
                const distDir = path.dirname(dist);

                if (fs.statSync(key).isFile()) {
                    fse.ensureDirSync(distDir);

                    fs.writeFileSync(
                        dist,
                        mustache.render(
                            fs.readFileSync(key, 'utf-8'),
                            result
                        )
                    );
                } else {
                    fse.ensureDirSync(distDir);
                    fse.copySync(key, dist);
                    readRecursive(dist).forEach((file) => {
                        const modFile = path.join(dist, file);

                        fs.writeFileSync(
                            mustache.render(modFile, result),
                            mustache.render(
                                fs.readFileSync(modFile, 'utf-8'),
                                result
                            ),
                            'utf-8'
                        );
                    });
                }
            });
Example #3
0
  findJsFile() {
    const files = readdir(this.options.root, (name, index, dir) => {
      const fullname = path.join(dir, name);
      // ignore all node_modules
      if (fullname.indexOf('/node_modules/') >= 0) return false;
      // ignore specified exclude directories or files
      if (this._contains(fullname, this.options.exclude)) return false;

      if (fs.statSync(fullname).isDirectory()) return true;
      const extname = path.extname(name);
      if (extname !== '.js' && extname !== '.jsx') return false;
      return true;
    });

    const jsFiles = [];
    const jsTestFiles = [];
    files.forEach(file => {
      file = path.join(this.options.root, file);
      if (this._contains(file, this.options.test)) jsTestFiles.push(file);
      else jsFiles.push(file);
    });
    debug('findJsFile jsFiles(%j), jsTestFiles(%j)', jsFiles, jsTestFiles);
    return {
      jsFiles, jsTestFiles,
    };
  }
Example #4
0
	processDynamicTemplates : function (callback) {
		var _this             = this,
				dynamicTemplates  = readdirSyncRecursive(Vars.paths.templates + 'dynamic/');


		if(dynamicTemplates){

			async.map(
				dynamicTemplates,

				function (filename, callback) {
					File.mustacheReplacer(
						Vars.paths.templates + 'dynamic/',
						filename,
						_this.paths.absolute,
						null,
						_this.component,
						callback
					);
				},

				function(err){
					if(err){
						return console.error(err);
					}

					callback();
				}
			);

		}



	},
Example #5
0
		return new Promise(async resolve => {
			let files = read(path);
			console.log('Loading data from: ', files);

			this.data = [];
			files.forEach(file => {
				if(~file.indexOf('.js') || ~file.indexOf('.json')) {
					this.data.push(require(path + '/' + file));
				}
			});

			console.log('Populating collections: ', this.data.map(collection => collection.model));

			for(var collection of this.data) {
				let Model = mongoose.model(collection.model);

				const documents = await Model.count({});

				if(options.populateExisting || (!options.populateExisting && !documents)) {
					console.log('Populating ' + collection.model + ' with ' + collection.data.length + ' entries');
					for(let entry of collection.data) {
						await Model.create(entry);
					};
				} else {
					console.log('Model ' + collection.model + ' has ' + documents + ' existing entries, not populating');
				}
			};
			console.log('Population Done!')
			resolve();
		});
Example #6
0
  .then(inputStat => {
    isDir = inputStat.isDirectory();
    if (isDir) {
      return readdirRecursive(inputPath, onlyIDL).map(relativePath => path.resolve(inputPath, relativePath));
    }

    return [inputPath]; // get dir name
  })
function findModules() {
	// Find all of the JS files and strip the .js extension
	return readdir(APP_DIRECTORY).filter(function(name) {
		return name.substring(name.length - 3) === '.js';
	}).map(function(name) {
		return name.substring(0, name.length - 3);
	});
}
Example #8
0
const readDir = function(loc, filter) {
  const files = {};
  if (fs.existsSync(loc)) {
    readdir(loc, filter).forEach(function(filename) {
      files[filename] = helper.readFile(path.join(loc, filename));
    });
  }
  return files;
};
Example #9
0
function getJSFilesRecursively(dir) {

  //console.log(readdirRecursive(dir));

  return readdirRecursive(dir)
    .filter(function (file) {
      return file.endsWith('.spec.js');
    });
}
Example #10
0
  const filesArray = (Array.isArray(files) ? files : [files]).map(filename => {
    if (fs.lstatSync(filename).isDirectory()) {
      return read(filename)
        .filter(file => path.extname(file) === '.js')
        .map(file => path.join(filename, file));
    }

    return filename;
  });
Example #11
0
let readDir = function (loc) {
  let files = {};
  if (fs.existsSync(loc)) {
    _.each(readdir(loc), function (filename) {
      files[filename] = helper.readFile(path.join(loc, filename));
    });
  }
  return files;
};
Example #12
0
var readDir = function (loc) {
  var files = {};
  if (fs.existsSync(loc)) {
    _.each(readdir(loc), function (filename) {
      var contents = readFile(loc + "/" + filename);
      files[filename] = contents;
    });
  }
  return files;
};
Example #13
0
__getData = function() {
  var fileList = scanDir(path.join(__dirname, '/../uploads/thumb')),
    deferreds = [];

  _.each(fileList, function(filename, index) {
    deferreds.push(__getCoords('uploads/original/' + filename));
  });

  return when.all(deferreds);
}
Example #14
0
	processOptionalTemplates : function (callback) {
		var _this             = this,
				dynamicTemplates  = readdirSyncRecursive(Vars.paths.templates + 'optional/');


				async.parallel(
					[
						function (callback) {
							if(_this.component.jsName){

								File.mustacheReplacer(
									Vars.paths.templates + 'optional/',
									'module.js',
									_this.paths.absolute,
									_this.component.jsName + '.js',
									_this.component,
									callback
								);

							}else{
								callback();

							}
						},

						function (callback) {
							if (_this.component.phpName) {

								File.mustacheReplacer(
									Vars.paths.templates + 'optional/',
									'generator.php',
									_this.paths.absolute,
									_this.component.phpName + '.php',
									_this.component,
									callback
								);

							} else {
								callback();

							}
						}
					],

					function (err) {
						if (err) {
							return console.error(err);
						}

						callback();
					}
				);


	},
Example #15
0
	loadModels(path) {
		let files = read(path);
		this.models = []
		files.forEach(file => {
			if(~file.indexOf('.js')) {
				let model = require(path + '/' + file);
				this.models.push((model.default || model).modelName);
			}
		});
		console.log('Loaded models:', this.models);
	}
Example #16
0
export function readdir(
  dirname: string,
  includeDotfiles: boolean,
  filter: ReaddirFilter,
) {
  return readdirRecursive(
    dirname,
    filename =>
      (includeDotfiles || filename[0] !== ".") && (!filter || filter(filename)),
  );
}
		return function (filePath, alias) {

			return fsdr(filePath ? path.join(baseDir, filePath) : baseDir).reduce(function getCurrentDirectoryContents(arr, item) {
				return item.indexOf(ext) >= 0 ?
					arr.concat({
						alias: slash(alias ? path.join(alias, item.substring(0, item.indexOf(ext))) : item.substring(0, item.indexOf(ext))),
						path: slash(filePath ? path.join(filePath, item.substring(0, item.indexOf(ext))) : item.substring(0, item.indexOf(ext)))
					})
					: arr;
			}, []);
		}
Example #18
0
function getModels (options) {
    if (!options.driver) {
        console.warn('DB_DRIVER environment variable not set, no database connection');

        return {};
    }

    var basename = path.basename(module.filename);

    var sequelize = new Sequelize(options.name, options.user, options.pass,{
        host: options.host,
        dialect: options.driver,
        port: options.port,
        define: {
            createdAt: 'created_date',
            updatedAt: 'updated_date',
            underscored: true
        },
        logging: false
    });

    var db = {};

    rread(__dirname)
        .filter(function(file) {
            file = path.basename(file);
            return (file.slice(-3) === '.js') && (file !== basename);
        })
        .forEach(function(file) {
            var model = sequelize['import'](file);
            db[model.name] = model;
        });

    Object.keys(db).forEach(function(modelName) {
        if (db[modelName].associate) {
            db[modelName].associate(db);
        }
    });

    db.sync = function (cb) {
        db.sequelize.sync()
            .then(function () {
                cb(null);
            })
            .catch(cb);
    };

    db.sequelize = sequelize;
    db.Sequelize = Sequelize;

    return db;
}
  it("validates all the libs", () => {
    const loaderPath = "lib/loaders"
    const loaderPaths = readDirRecursive(loaderPath)
    const skipPrefix = "api/"
    const loaders = loaderPaths
      .filter(l => !l.startsWith("__"))
      .filter(l => !l.startsWith(skipPrefix))

    loaders.forEach(path => {
      const value = require("../../../" + loaderPath + "/" + path)
      expect([path, value.default]).toEqual([path, expect.any(Function)])
    })
  })
Example #20
0
function getModulesNames() {
	return readdir(PATH_TO_JS).filter(function(name) {
		// if (name.indexOf('scripts/') === 0) {
		// 	return false;
		// }
        //
		// return name.substring(name.length - 3) === '.js';
		return name.substring(name.length - 6) === 'app.js';

	}).map(function(name) {
		return name.substring(0, name.length - 3);
	});
}
Example #21
0
function getScriptNames() {
	return readdir(PATH_TO_JS + '/scripts', function(name) {
		return name.substring(name.length - 3) === '.js';
	}).sort(function(a, b) {
		if (a === 'config.js') {
			return -1;
		} else if (b === 'config.js') {
			return 1;
		} else {
			return 0;
		}
	});
}
Example #22
0
function getFilesRecursively (files, rootFile) {
  if (fs.lstatSync(rootFile).isDirectory()) {
    var nestedFiles = rfs(rootFile, function (file) {
      return file !== 'node_modules'
    })
    nestedFiles = _.filter(nestedFiles, mdFilter)
    nestedFiles = _.map(nestedFiles, function (file) {
      return rootFile + '/' + file
    })
    return files.concat(nestedFiles)
  } else {
    return files.concat(rootFile)
  }
}
  extensionTypesDirs.forEach((extensionTypeDir) => {
    var extTemplates = readDirRecursive(path.resolve(__dirname, `${templatesDir}/${extensionTypeDir}`));

    extTemplates.forEach((extTemplate) => {
      var srcFile = path.resolve(__dirname, `${extensionTypeDir}/${extTemplate}`);
      var srcDir = path.dirname(srcFile);

      var item = {
        src: srcDir,
        dist: path.basename(srcDir),
      };

      pkgEntries.push(item);
    });
  });
Example #24
0
File: util.js Project: SimenB/babel
export function readdir(
  dirname: string,
  includeDotfiles: boolean,
  filter: ReaddirFilter,
) {
  return readdirRecursive(dirname, (filename, _index, currentDirectory) => {
    const stat = fs.statSync(path.join(currentDirectory, filename));

    if (stat.isDirectory()) return true;

    return (
      (includeDotfiles || filename[0] !== ".") && (!filter || filter(filename))
    );
  });
}
    allExtensionTypes.forEach((extensionType) => {
      var extTplDir = path.resolve(__dirname, `${tplDirectory}/${extensionType}`);
      var templates = readDirRecursive(path.resolve(__dirname, `${tplDirectory}/${extensionType}`));

      templates.forEach((file) => {
        var dest = path.resolve(__dirname, `${extensionType}/${file}`);
        var item = {
          context: extTplDir,
          from: file,
          to: dest,
          transform: tagTransformation,
        };

        renderTpls.push(item);
      });
    });
Example #26
0
    function _copyDir() {
        let rawCopy = T.Path.resolve(tempPath, 'template');

        T.fsa.mkdirSync(to);
        T.fsa.copySync(rawCopy, to);
        // 更新项目名称
        _updateName(to);

        let files = fsrr(rawCopy, f => f);
        Array.isArray(files) &&
            files.forEach(file => {
                T.log.green(`√ '${T.Path.resolve(to, file)}' is Created`);
            });
        if (!isAutoInstall) return process.exit(1);
        autoInstallPackages();
    }
Example #27
0
function config_loader(config_dir) {
  var config = _.merge.apply({},
    _.map(read_dir(config_dir), function(file) {
      var y = yaml.safeLoad(
        fs.readFileSync(
          path.join(config_dir, file), 'utf-8'
        )
      );
      if (typeof y !== 'object') {
        raise_error("YAML in file " + config_dir + "/" + file + " is invalid");
      }
      return y;
    })
  );

  return assert_lunchmenu_is_valid(config);
}
 _findTemplates: function (templateDirectory) {
     var findFiles = Promise.resolve(readDir(templateDirectory));
     return findFiles
         .then(function (files) {
             return files.filter(this._isTemplateFile);
         }.bind(this))
         .then(function (templates) {
             var sourceToDestination = {};
             var subDirectory = this._getTemplateSubDirectory(templateDirectory);
             for (var i = 0; i < templates.length; i++) {
                 /* @type {String} fileName  */
                 var template = templates[i];
                 var source = this.templatePath(path.join(subDirectory, template));
                 sourceToDestination[source] = this.destinationPath(this._toDestinationPath(template));
             }
             return sourceToDestination;
         }.bind(this));
 },
function generatePackage() {
  var pkgEntries = [];

  // Include all files from the package directory
  var pkgFiles = readDirRecursive(packageDirAbs);

  pkgFiles.forEach((file) => {
    var packageFile = path.resolve(packageDirAbs, file);

    var item = {
      src: packageFile,
    };

    pkgEntries.push(item);
  });

  // Add all extension types directories into the package
  extensionTypesDirs.forEach((extensionTypeDir) => {
    var extTemplates = readDirRecursive(path.resolve(__dirname, `${templatesDir}/${extensionTypeDir}`));

    extTemplates.forEach((extTemplate) => {
      var srcFile = path.resolve(__dirname, `${extensionTypeDir}/${extTemplate}`);
      var srcDir = path.dirname(srcFile);

      var item = {
        src: srcDir,
        dist: path.basename(srcDir),
      };

      pkgEntries.push(item);
    });
  });

  // Complete the definition of the zip file
  var outputFile = path.resolve(__dirname, `${releaseDir}/pkg_${definitions.EXTENSION_ALIAS}_v${definitions.RELEASE_VERSION}`);

  var zipFile = {
    entries: pkgEntries,
    output: outputFile,
    format: 'zip',
  };

  return new ZipFilesPlugin(zipFile);
}
    extensionTypesDirs.forEach((extensionType) => {
      var extZipDir = path.resolve(__dirname, `${tplDirectory}/${extensionType}`);
      var templates = readDirRecursive(path.resolve(__dirname, `${tplDirectory}/${extensionType}`));

      templates.forEach((tplFile) => {
        var srcFile = path.resolve(__dirname, `${extensionType}/${tplFile}`);
        var srcDir = path.dirname(srcFile);
        var extname = path.extname(srcFile);

        if (extname !== '.xml') return;

        var manifestTplFile = `${extZipDir}/${tplFile}`;
        var extensionTplDir = path.dirname(manifestTplFile);
        var parts = extensionTplDir.split('/');
        var extElement = parts.pop();

        var renamedExtElement = extElement;

        if (renamedExtElement === 'component') {
          renamedExtElement = definitions.EXTENSION_ALIAS;
        } else if (renamedExtElement === 'file') {
          renamedExtElement = 'cli';
        }

        var outputFile = path.resolve(__dirname, `${releaseDir}/${renamedExtElement}_v${definitions.RELEASE_VERSION}`);

        var zipFile = {
          entries: [
            {
              src: srcDir,
              dist: extElement,
            },
          ],
          output: outputFile,
          format: 'zip',
        };

        var itemZip = new ZipFilesPlugin(zipFile);
        zipPlugins.push(itemZip);
      });
    });