Skip to content
Snippets Groups Projects
random.js 1.31 KiB
Newer Older
const randomize = require('./lib/randomize');
const ArgumentParser = require('argparse').ArgumentParser;

const parser = new ArgumentParser({
  version: '1.0.0',
  addHelp: true,
  description: 'Generates a bunch of plausible randomize DataCrates'
});


parser.addArgument(
    ['-d', '--directory'],
    {
      help: "Directory in which to write DataCrates. Will be created if it doesn't exist",
      defaultValue: './output/'
    }
);

parser.addArgument(
    ['-n', '--number'],
    {
      help: 'Number of DataCrates to generate.',
      type: 'int',
      defaultValue: 10
    }
);


const args = parser.parseArgs();

console.log(`Generating ${args['number']} randomize DataCrates in ${args['directory']}`);

const dest = args['directory'];
const n = args['number'];

async function createDatacrates(dest, n) {
  const sourcedata = await randomize.loadsourcedata('./vocabularies');
  const datapubs = randomize.randdatapubs(n, sourcedata);
  datapubs.reduce((promise, p, index) => {
    return promise.then(async () => {
      const id = await randomize.makedir(dest);
      return randomize.makedatacrate(dest, p, id)
          .then(() => {
            if (index >= n) {
              console.log("Done");
            }
            return Promise.resolve();
          });
    })
  }, Promise.resolve());
}

createDatacrates(dest, n);