Auto-Photoshop-StableDiffus.../build-script/pack-ccx.mjs

69 lines
2.0 KiB
JavaScript

import chalk from 'chalk';
import { program } from 'commander';
import { createWriteStream, readFileSync, statSync, writeFileSync } from 'fs';
import { globSync } from 'glob';
import { dirname, join, relative } from 'path';
import { fileURLToPath } from 'url';
import yazl from 'yazl'
const __dirname = dirname(fileURLToPath(import.meta.url))
const basePath = join(__dirname, '..')
program
.requiredOption("--version <platform>", "the target platform")
.parse();
const version = program.opts().version;
if (!version.match(/\d+\.\d+\.\d+/)) throw new Error(`invalid version format: ${version}`);
console.log(chalk.cyan("rewriting manifest.json's version field to " + version));
const manifest = JSON.parse(readFileSync(`${basePath}/manifest.json`, 'utf-8'));
manifest.version = version;
writeFileSync(`${basePath}/manifest.json`, JSON.stringify(manifest));
console.log(chalk.cyan("rewriting package.json's version field to " + version));
const packageJSON = JSON.parse(readFileSync(`${basePath}/package.json`, 'utf-8'));
packageJSON.version = version;
writeFileSync(`${basePath}/package.json`, JSON.stringify(packageJSON));
console.log(chalk.cyan("packaging .ccx"));
const zipList = [
'./manifest.json',
'./i18n/**/*',
'./icon/**/*',
'./jimp/**/*',
'./scripts/**/*',
'./typescripts/dist/**/*',
'./utility/**/*',
'./server/**/*',
'./*.js',
'./package.json',
'./tsconfig.json',
'./*.html',
'./*.py',
'./*.txt',
'./*.md',
'./*.png',
]
const zipfile = new yazl.ZipFile();
zipList.forEach(globber => {
globSync(
join(basePath, globber).replace(/\\/g, '/')
).forEach(filepath => {
if (statSync(filepath).isDirectory()) return;
const rpath = relative(basePath, filepath);
zipfile.addFile(filepath, rpath)
})
})
zipfile.outputStream.pipe(
createWriteStream(join(basePath, `Auto.Photoshop.SD.plugin_v${version}.ccx`))
);
zipfile.outputStream.pipe(
createWriteStream(join(basePath, `Auto.Photoshop.SD.plugin_v${version}.zip`))
);
zipfile.end()