UNPKG

dragonbones-runtime

Version:

the tools to build dragonbones file for diffrent framework

93 lines (72 loc) 2.84 kB
/// <reference path="../lib/types.d.ts" /> /** * 打zip包 */ import file = require('../lib/FileUtil'); import project = require('../actions/Project'); import FileUtil = require('../lib/FileUtil'); import utils = require('../lib/utils'); class ZipCommand implements egret.Command { private outputFile: string; private sourcePath: string; private password: string; private useList: Array<string>; private versionFile: string; constructor(versionFile: string) { this.versionFile = versionFile; } private init() { this.useList = []; //拷贝所需文件到 ziptemp目录 var releasePath = egret.args.releaseDir; var ziptempPath = FileUtil.joinPath(releasePath, "ziptemp"); FileUtil.createDirectory(ziptempPath); //runtime 打包所有js文件以及all.manifest this.outputFile = FileUtil.joinPath(releasePath, "game_code_" + this.versionFile + ".zip"); this.sourcePath = ziptempPath; this.password = egret.args.password || ""; } execute(callback?: (exitCode: number) => void): number { // var tempTime = Date.now(); globals.debugLog(1410); this.init(); var compilerPath = FileUtil.joinPath(egret.root, "tools/lib/zip/EGTZipTool_v1.0.2.js"); compilerPath = globals.addQuotes(compilerPath); var cmd = globals.addQuotes(process.execPath) + ' ' + compilerPath + ' zip ' + globals.addQuotes(this.outputFile) + ' ' + globals.addQuotes(this.sourcePath) + ' ' + this.password; var cp_exec1 = require('child_process').exec; var build = cp_exec1(cmd); build.stdout.on("data", function (data) { //console.log(data); }); build.stderr.on("data", function (data) { //console.log(data); }); var self = this; build.on("exit", (result) => { if (result == 0) { if (!FileUtil.isFile(self.outputFile)) { console.error(utils.tr(1420)) } //结束 file.remove(this.sourcePath); var releasePath = egret.args.releaseDir; for (var tempKey in self.useList) { FileUtil.remove(self.useList[tempKey]); } //globals.debugLog(1411, (Date.now() - tempTime) / 1000); if (callback) { callback(result); } else process.exit(result); } else { //todo zip异常 //globals.warn(result); globals.log(1421); } }); return 0; } } export = ZipCommand;