From f626ad5a0cd1a99f25dd0a90bd6d3aeed3474497 Mon Sep 17 00:00:00 2001 From: Tw93 Date: Tue, 16 Sep 2025 10:21:27 +0800 Subject: [PATCH] :sparkles: hide-on-close support param --- bin/builders/BaseBuilder.ts | 3 ++- bin/cli.ts | 8 +++++++- docs/cli-usage.md | 5 +++++ docs/cli-usage_CN.md | 5 +++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/bin/builders/BaseBuilder.ts b/bin/builders/BaseBuilder.ts index 72b0c51..278f867 100644 --- a/bin/builders/BaseBuilder.ts +++ b/bin/builders/BaseBuilder.ts @@ -7,6 +7,7 @@ import { PakeAppOptions } from '@/types'; import { checkRustInstalled, installRust } from '@/helpers/rust'; import { mergeConfig } from '@/helpers/merge'; import tauriConfig from '@/helpers/tauriConfig'; +import { generateIdentifierSafeName } from '@/utils/name'; import { npmDirectory } from '@/utils/dir'; import { getSpinner } from '@/utils/info'; import { shellExec } from '@/utils/shell'; @@ -409,7 +410,7 @@ export default abstract class BaseBuilder { // Linux uses the unique binary name we set in merge.ts if (process.platform === 'linux') { - return `pake-${appName.toLowerCase()}${extension}`; + return `pake-${generateIdentifierSafeName(appName)}${extension}`; } // Windows and macOS use 'pake' as binary name diff --git a/bin/cli.ts b/bin/cli.ts index f27fe4e..4978850 100644 --- a/bin/cli.ts +++ b/bin/cli.ts @@ -127,10 +127,16 @@ program ) .addOption( new Option( - '--hide-on-close', + '--hide-on-close [boolean]', 'Hide window on close instead of exiting (default: true for macOS, false for others)', ) .default(DEFAULT.hideOnClose) + .argParser((value) => { + if (value === undefined) return true; // --hide-on-close without value + if (value === 'true') return true; + if (value === 'false') return false; + throw new Error('--hide-on-close must be true or false'); + }) .hideHelp(), ) .addOption(new Option('--title ', 'Window title').hideHelp()) diff --git a/docs/cli-usage.md b/docs/cli-usage.md index 33305f4..3462536 100644 --- a/docs/cli-usage.md +++ b/docs/cli-usage.md @@ -285,7 +285,12 @@ Specify the system tray icon. This is only effective when the system tray is ena Hide window instead of closing the application when clicking close button. Platform-specific default: `true` for macOS, `false` for Windows/Linux. ```shell +# Hide on close (default behavior on macOS) --hide-on-close +--hide-on-close true + +# Close application immediately (default behavior on Windows/Linux) +--hide-on-close false ``` #### [title] diff --git a/docs/cli-usage_CN.md b/docs/cli-usage_CN.md index 0800006..b1005d3 100644 --- a/docs/cli-usage_CN.md +++ b/docs/cli-usage_CN.md @@ -284,7 +284,12 @@ pake https://github.com --name GitHub 点击关闭按钮时隐藏窗口而不是退出应用程序。平台特定默认值:macOS 为 `true`,Windows/Linux 为 `false`。 ```shell +# 关闭时隐藏(macOS 默认行为) --hide-on-close +--hide-on-close true + +# 立即关闭应用程序(Windows/Linux 默认行为) +--hide-on-close false ``` #### [title]