Skip to content

Instantly share code, notes, and snippets.

@kerphi
Last active December 19, 2015 15:28
Show Gist options
  • Save kerphi/5976268 to your computer and use it in GitHub Desktop.
Save kerphi/5976268 to your computer and use it in GitHub Desktop.
Petit script en nodejs permettant d'écrire des lots (fichiers) ayant des noms aléatoires dans 3 niveaux de répertoires. Chaque lot contenant 1000 JSON : un par ligne.
#!/usr/bin/env node
/**
* Script chargé de générer des fichiers contenant 1000 lignes avec un JSON par ligne
* les fichiers on des noms alléatoires générés par uuid
* et sont stockés dans une structure de 3 répertoires imbriqués.
*
* Paramètres :
* rootPath : répertoire où seront écrits les répertoires et les fichiers
* nbObj : le nombre de JSON à créer avant que le script prenne fin automatiquement
* nbPerLot : le nombre d'objet par lot
* tempo : le temps max d'attente entre la création de deux fichiers
*
* Installation :
* npm install uuid mkdirp
*/
var rootPath = __dirname + '/in';
var nbObj = 2000000;
var nbPerLot = 1000;
var tempo = 100;
var fs = require('fs');
var uuid = require('uuid');
var mkdirp = require('mkdirp');
function generateFakeLot() {
var id = uuid.v4();
var path = rootPath + '/' + id[0] + '/' + id[1] + '/' + id[2];
var file = path + '/' + id;
// write file (a lot) containing objects
mkdirp.sync(path);
var content = '';
for (var i = 0; i < nbPerLot; i++) {
content += '{ id1: ' + uuid.v4() + ' }\n';
nbObj--;
}
fs.writeFileSync(file, content);
console.log(file + ' created [' + nbObj + ']');
// run generateFakeFile randomly
setTimeout(function () {
generateFakeLot();
}, Math.round(Math.random() * tempo));
}
// run it once
generateFakeLot();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment