// Quick tool for making a datacrate from a data pub const datacrate = require('./lib/catalog.js'); const fs = require('fs-extra'); const path = require('path'); const ArgumentParser = require('argparse').ArgumentParser; const ORGANISATION = { 'id': 'https://www.uts.edu.au/', 'name': 'University of Technology Sydney' }; const OWNER = 'Kathryn.T.Braye@student.uts.edu.au'; const APPROVER = 'Sharyn.Wise@uts.edu.au'; async function makedatacrate(doi, datapub, dest) { await fs.ensureDir(dest); const catalog = await datacrate.datapub2catalog({ id: doi, datapub: datapub, organisation: ORGANISATION, owner: OWNER, approver: APPROVER }); const catfile = path.join(dest, 'CATALOG.json'); await fs.writeFile(catfile, JSON.stringify(catalog, null, 2)); } async function convertdatapub(pid, jsonfile, dest) { const datapub = await fs.readJSON(jsonfile); await makedatacrate(pid, datapub, dest); } var parser = new ArgumentParser({ version: '1.0.0', addHelp: true, description: 'Converts a ReDBox data publication to a CATALOG.json' }); parser.addArgument( ['-i', '--input'], { help: "The input data publication", required: true }); parser.addArgument( ['-p', '--persistentid'], { help: "The persistent ID for the datacrate (a DOI, say)", required: true }); parser.addArgument( ['-d', '--directory'], { help: "Directory in which to write the CATALOG.json. Will be created if it doesn't exist", defaultValue: './datacrate/' } ); var args = parser.parseArgs(); convertdatapub(args['persistentid'], args['input'], args['directory']);