28 lines
1.7 KiB
JavaScript
28 lines
1.7 KiB
JavaScript
#!/usr/bin/env node
|
|
import { build } from '../platform/build.mjs';
|
|
import { release } from '../platform/release.mjs';
|
|
import { fileURLToPath } from 'node:url';
|
|
import { parseArgs, manageMod, usage } from '../platform/commands.mjs';
|
|
import { deploy, rollback } from '../platform/ssh-deploy.mjs';
|
|
import { backup, restoreSnapshot } from '../platform/backups.mjs';
|
|
|
|
const args = process.argv.slice(2);
|
|
if (args.length === 0 || args.includes('--help')) {
|
|
console.log(usage);
|
|
process.exit(args.length === 0 ? 1 : 0);
|
|
}
|
|
try {
|
|
const options = parseArgs(args);
|
|
const root = fileURLToPath(new URL('../', import.meta.url));
|
|
if (options.command === 'build') console.log(`Release: ${build({ root, configFile: options.configFile, releaseOnly: options.releaseOnly })}`);
|
|
else if(options.command==='release')console.log(JSON.stringify(release({root,version:options.version,configFile:options.configFile}),null,2));
|
|
else if (options.command === 'deploy') await deploy({ root, configFile: options.configFile, artifact: options.artifact, sshConfig: options.sshConfig, remoteNode: options.remoteNode });
|
|
else if (options.command === 'rollback' || options.command === 'rollback-pack') await rollback({ root, ...options });
|
|
else if (options.command === 'backup') console.log(`Backup: ${backup({ repository: root, targetRelease: options.targetRelease, waitTimeout: options.waitTimeout })}`);
|
|
else if (options.command === 'restore') console.log(`Restored: ${restoreSnapshot({ backupDirectory: options.backupDirectory, destination: options.destination })}`);
|
|
else process.exitCode = manageMod({ root, ...options });
|
|
} catch (error) {
|
|
console.error(`mcpack: ${error.message}`);
|
|
process.exitCode = 1;
|
|
}
|