Files
payload/bin/cli.js
2021-06-01 14:01:26 -04:00

53 lines
1.7 KiB
JavaScript

#!/usr/bin/env node
const { getArgs } = require('../utils/getArgs');
const { getTemplate } = require('../utils/getTemplate');
const { getProjectName } = require('../utils/getProjectName');
const { createProject } = require('../utils/createProject');
const { welcomeMessage, helpMessage, successMessage } = require('../utils/messages');
const { success } = require('../utils/log');
const { getDatabaseConnection } = require('../utils/getDatabaseConnection');
const { getPayloadSecret } = require('../utils/getPayloadSecret');
const { writeEnvFile } = require('../utils/writeEnvFile');
const { getLanguage } = require('../utils/getLanguage');
const { validateTemplate } = require('../utils/getValidTemplates');
const { error } = require('../utils/log');
const { init, handleException } = require('../utils/usage');
const trx = init();
(async () => {
const args = getArgs();
if (args['--help'] || args.count === 0) {
console.log(await helpMessage());
return 0;
}
const templateArg = args['--template'];
if (templateArg) {
const valid = await validateTemplate(templateArg);
if (!valid) {
console.log(await helpMessage());
process.exit(1);
}
}
console.log(welcomeMessage);
try {
await getProjectName();
await getLanguage();
await getTemplate();
await getDatabaseConnection();
await getPayloadSecret();
if (!args['--dry-run']) {
await createProject();
await writeEnvFile();
}
success('Payload project successfully created');
console.log(await successMessage());
} catch (e) {
handleException(e);
error(`An error has occurred: ${e && e.message}`);
} finally {
trx.finish();
}
})();