You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
3.8 KiB
133 lines
3.8 KiB
let Fs = require('fs');
|
|
let Path = require('path');
|
|
|
|
// panel/index.js, this filename needs to match the one registered in package.json
|
|
Editor.Panel.extend({
|
|
// css style for panel
|
|
style: Fs.readFileSync(Editor.url('packages://hyz-encript/panel/index.css', 'utf8')),
|
|
|
|
// html template for panel
|
|
template: Fs.readFileSync(Editor.url('packages://hyz-encript/panel/index.html', 'utf8')),
|
|
|
|
// element and variable binding
|
|
$: {
|
|
btn: '#btn',
|
|
buildType:"#buildType",
|
|
buildFloder:"#buildFloder",
|
|
input_encriptKey: "#input_encriptKey",
|
|
input_encriptSign: "#input_encriptSign",
|
|
needMixFilename: "#needMixFilename",
|
|
input_nameMixSign: "#input_nameMixSign",
|
|
},
|
|
|
|
/**是否要混淆文件名 */
|
|
get _needMixFilename(){
|
|
return this.$needMixFilename.value
|
|
},
|
|
/**混淆签名 */
|
|
get _nameMixSign(){
|
|
return this.$input_nameMixSign.value
|
|
},
|
|
/**加密签名 */
|
|
get _encriptSign(){
|
|
return this.$input_encriptSign.value
|
|
},
|
|
/**加密密码 */
|
|
get _encriptKey(){
|
|
return this.$input_encriptKey.value
|
|
},
|
|
/**构建目录 */
|
|
get _buildFloder(){
|
|
return this.$buildFloder.value
|
|
},
|
|
/**构建类型 */
|
|
get _buildType(){
|
|
return this.$buildType.value
|
|
},
|
|
|
|
// method executed when template and styles are successfully loaded and initialized
|
|
ready () {
|
|
this.recordPath = Editor.url('packages://hyz-encript/panel/record.json', 'utf8');
|
|
|
|
// Editor.log('--------插件准备好',recordPath);
|
|
let record = {};
|
|
if(Fs.existsSync(this.recordPath)){
|
|
record = JSON.parse(Fs.readFileSync(this.recordPath));
|
|
|
|
if(record.encriptSign){
|
|
this.$input_encriptSign.value = record.encriptSign;
|
|
}
|
|
if(record.encriptKey){
|
|
this.$input_encriptKey.value = record.encriptKey;
|
|
}
|
|
if(record.buildType!=undefined){
|
|
this.$buildType.value = record.buildType;
|
|
}
|
|
if(record.needMixFilename){
|
|
this.$needMixFilename.value = record.needMixFilename;
|
|
}
|
|
this.$input_nameMixSign.disabled = !this._needMixFilename;
|
|
if(record.nameMixSign&&this._needMixFilename){
|
|
this.$input_nameMixSign.value = record.nameMixSign;
|
|
}
|
|
|
|
// Editor.log("有记录",record)
|
|
}else{
|
|
|
|
}
|
|
|
|
this.$buildFloder.value = this._getBuildPath();
|
|
|
|
this.$buildType.addEventListener('change',()=>{
|
|
this.$buildFloder.value = this._getBuildPath();
|
|
})
|
|
|
|
this.$needMixFilename.addEventListener('change',()=>{
|
|
this.$input_nameMixSign.disabled = !this._needMixFilename;
|
|
if(record.nameMixSign&&this._needMixFilename){
|
|
this.$input_nameMixSign.value = record.nameMixSign;
|
|
}
|
|
})
|
|
|
|
this.$btn.addEventListener('confirm', this._doEncript.bind(this));
|
|
},
|
|
|
|
_doEncript(){
|
|
let CLASS = require("./encripter")
|
|
let record = {
|
|
buildType : this._buildType,
|
|
buildFloderPath : this._getBuildPath(),
|
|
recordPath : this.recordPath,
|
|
encriptKey : this._encriptKey,
|
|
encriptSign : this._encriptSign,
|
|
needMixFilename : this._needMixFilename,
|
|
nameMixSign:this._nameMixSign,
|
|
}
|
|
let tool = new CLASS(record);
|
|
tool.startBuild();
|
|
|
|
Fs.writeFileSync(this.recordPath,JSON.stringify(record))
|
|
Editor.log('--------------加密完成')
|
|
},
|
|
|
|
_getBuildPath(){
|
|
let buildType = this._buildType;
|
|
let assetsPath = Editor.url('db://assets','utf8');
|
|
let web_desktopPath = Path.join(assetsPath,"../build/web-desktop");
|
|
let web_mobilePath = Path.join(assetsPath,"../build/web-mobile");
|
|
let jsb_linkPath = Path.join(assetsPath,"../build/jsb-link");
|
|
if(buildType==0){
|
|
return web_desktopPath;
|
|
}else if(buildType==1){
|
|
return web_mobilePath;
|
|
}else if(buildType==2){
|
|
return jsb_linkPath;
|
|
}
|
|
},
|
|
|
|
// register your ipc messages here
|
|
messages: {
|
|
|
|
},
|
|
|
|
});
|
|
|