Skip to content

Commit

Permalink
加入命令运行引擎脚本功能
Browse files Browse the repository at this point in the history
  • Loading branch information
b1rdfree committed Apr 24, 2024
1 parent c08f165 commit e6de879
Show file tree
Hide file tree
Showing 7 changed files with 94 additions and 3 deletions.
49 changes: 48 additions & 1 deletion app/main/handlers/upgradeUtil.js
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,7 @@ module.exports = {
})
zipHandler.on("ready", () => {
const targetPath = path.join(YakitProjectPath, output_name)
zipHandler.extract(output_name, targetPath, (err, res) => {
zipHandler.extract(output_name, targetPath, (err, res) => {
if (!fs.existsSync(targetPath)) {
reject(`Extract Cert Script Failed`)
} else {
Expand Down Expand Up @@ -631,5 +631,52 @@ module.exports = {
}
return await asyncInitBuildInEngine({})
})

// 解压 start-engine.zip
const generateStartEngineGRPC = () => {
return new Promise((resolve, reject) => {
const all = "start-engine.zip"
const output_name = isWindows ? `start-engine-grpc.bat` : `start-engine-grpc.sh`

// 如果存在就不在解压
if(fs.existsSync(path.join(yaklangEngineDir,output_name))){
resolve("")
return
}

if (!fs.existsSync(loadExtraFilePath(path.join("bins/scripts", all)))) {
reject(all + " not found")
return
}
const zipHandler = new zip({
file: loadExtraFilePath(path.join("bins/scripts", all)), storeEntries: true,
})
zipHandler.on("ready", () => {
const targetPath = path.join(yaklangEngineDir, output_name)
zipHandler.extract(output_name, targetPath, (err, res) => {
if (!fs.existsSync(targetPath)) {
reject(`Extract Start Engine GRPC Script Failed`)
} else {
// 如果不是 Windows,给脚本文件添加执行权限
if (!isWindows) {
fs.chmodSync(targetPath, 0o755);
}
resolve("")
}
zipHandler.close();
})
})
zipHandler.on("error", err => {
console.info(err)
reject(`${err}`)
zipHandler.close()
})
})
}


ipcMain.handle("generate-start-engine", async (e) => {
return await generateStartEngineGRPC()
})
},
}
2 changes: 1 addition & 1 deletion app/main/uiOperate/hardware.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ module.exports = (win, getClient) => {
})

/** 打开 yaklang 或 yakit 文件所在文件夹 (ps:随着yakit下载移动至下载文件夹中,此方法仅打开yaklang)*/
ipcMain.handle("open-yakit-or-yaklang", (e) => {
ipcMain.handle("open-yaklang-path", (e) => {
return shell.openPath(yaklangEngineDir)
})

Expand Down
5 changes: 5 additions & 0 deletions app/renderer/src/main/src/NewApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ function NewApp() {
/** 是否展示用户协议 */
const [agreed, setAgreed] = useState(false)

useEffect(() => {
// 解压命令执行引擎脚本压缩包
ipcRenderer.invoke("generate-start-engine")
}, [])

/**
* 渲染端全局错误监听,并收集到错误信息文件里
*/
Expand Down
19 changes: 18 additions & 1 deletion app/renderer/src/main/src/components/basics/YakitLoading.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ import {YakitStatusType, YaklangEngineMode} from "@/yakitGVDefine"
import {YakitButton} from "../yakitUI/YakitButton/YakitButton"
import {getReleaseEditionName, isCommunityEdition, isEnpriTrace, isEnpriTraceAgent} from "@/utils/envfile"
import {DynamicStatusProps} from "@/store"
import {Tooltip} from "antd"
import {OutlineQuestionmarkcircleIcon} from "@/assets/icon/outline"

import yakitSE from "@/assets/yakitSE.png"
import yakitEE from "@/assets/yakitEE.png"
import styles from "./yakitLoading.module.scss"

const {ipcRenderer} = window.require("electron")

/** 首屏加载蒙层展示语 */
const LoadingTitle: string[] = [
"没有困难的工作,只有勇敢的打工人。",
Expand Down Expand Up @@ -260,7 +264,20 @@ export const YakitLoading: React.FC<YakitLoadingProp> = (props) => {
</div>
</div>

<div className={styles["engine-log-btn"]}>{btns}</div>
<div className={styles["engine-log-btn"]}>
{btns}
<div
className={styles["engine-help-wrapper"]}
onClick={() => {
ipcRenderer.invoke("open-yaklang-path")
}}
>
打开引擎所在文件
<Tooltip title={`打开文件夹后运行'start-engine-grpc',命令行启动引擎查看具体问题`}>
<OutlineQuestionmarkcircleIcon />
</Tooltip>
</div>
</div>
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,26 @@
.btn-style {
width: 280px;
}

.engine-help-wrapper {
width: 280px;
display: flex;
justify-content: center;
align-items: center;
gap: 4px;
line-height: 20px;
color: #b4bbca;
font-size: 14px;
cursor: pointer;
svg {
width: 16px;
height: 16px;
}

&:hover {
color: var(--yakit-primary-5);
}
}
}
}
}
Expand Down
Binary file added bins/scripts/start-engine.zip
Binary file not shown.
2 changes: 2 additions & 0 deletions electron-builder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ copyright: Copyright © 2024 yaklang.io
extraFiles:
- from: "bins/scripts/auto-install-cert.zip"
to: "bins/scripts/auto-install-cert.zip"
- from: "bins/scripts/start-engine.zip"
to: "bins/scripts/start-engine.zip"
- from: "bins/flag.txt"
to: "bins/flag.txt"
- from: "bins/engine-version.txt"
Expand Down

0 comments on commit e6de879

Please sign in to comment.