Files
minecraft-lab/scripts/mcpack.mjs
T
2026-10-04 00:30:09 +07:00

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;
}