From e194754dae4d3d0034070f71a24e95f2e4e11949 Mon Sep 17 00:00:00 2001
From: Kuingsmile <96409857+Kuingsmile@users.noreply.github.com>
Date: Wed, 28 Jan 2026 20:41:35 +0800
Subject: [PATCH] :sparkles: Feature(custom): support read .env file in script
system
---
src/main/utils/runScript.ts | 17 +++++++++++++++
src/renderer/i18n/locales/en.json | 1 +
src/renderer/i18n/locales/zh-CN.json | 1 +
src/renderer/i18n/locales/zh-TW.json | 1 +
src/renderer/pages/ScriptPage.vue | 31 ++++++++++++++++++++++++----
src/renderer/utils/static.ts | 2 ++
6 files changed, 49 insertions(+), 4 deletions(-)
diff --git a/src/main/utils/runScript.ts b/src/main/utils/runScript.ts
index 3f7b789b..d6f644c0 100644
--- a/src/main/utils/runScript.ts
+++ b/src/main/utils/runScript.ts
@@ -7,9 +7,24 @@ import { scriptsDir } from '@core/datastore/dirs'
import picgo from '@core/picgo'
import logger from '@core/picgo/logger'
import axios from 'axios'
+import dotenv from 'dotenv'
import fs from 'fs-extra'
import { IPicGo } from 'piclist'
+function getFreshEnv() {
+ const envPath = path.join(scriptsDir(), '.env')
+
+ if (fs.existsSync(envPath)) {
+ const buf = fs.readFileSync(envPath)
+ const config = dotenv.parse(buf)
+ for (const k in config) {
+ process.env[k] = config[k]
+ }
+ return config
+ }
+ return {}
+}
+
export const scriptLifecycleStages = [
'onSoftwareOpen',
'onSoftwareClose',
@@ -38,6 +53,7 @@ function format(data: unknown): string {
export async function runScript(ctx: IPicGo, script: string, extra: Record