mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-20 16:57:46 +00:00
feat: add user startup warnings, add home directory check (#3056)
This commit is contained in:
45
packages/cli/src/utils/userStartupWarnings.ts
Normal file
45
packages/cli/src/utils/userStartupWarnings.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2025 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import fs from 'fs/promises';
|
||||
import * as os from 'os';
|
||||
|
||||
type WarningCheck = {
|
||||
id: string;
|
||||
check: (workspaceRoot: string) => Promise<string | null>;
|
||||
};
|
||||
|
||||
// Individual warning checks
|
||||
const homeDirectoryCheck: WarningCheck = {
|
||||
id: 'home-directory',
|
||||
check: async (workspaceRoot: string) => {
|
||||
try {
|
||||
const [workspaceRealPath, homeRealPath] = await Promise.all([
|
||||
fs.realpath(workspaceRoot),
|
||||
fs.realpath(os.homedir()),
|
||||
]);
|
||||
|
||||
if (workspaceRealPath === homeRealPath) {
|
||||
return 'You are running Gemini CLI in your home directory. It is recommended to run in a project-specific directory.';
|
||||
}
|
||||
return null;
|
||||
} catch (_err: unknown) {
|
||||
return 'Could not verify the current directory due to a file system error.';
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
// All warning checks
|
||||
const WARNING_CHECKS: readonly WarningCheck[] = [homeDirectoryCheck];
|
||||
|
||||
export async function getUserStartupWarnings(
|
||||
workspaceRoot: string,
|
||||
): Promise<string[]> {
|
||||
const results = await Promise.all(
|
||||
WARNING_CHECKS.map((check) => check.check(workspaceRoot)),
|
||||
);
|
||||
return results.filter((msg) => msg !== null);
|
||||
}
|
||||
Reference in New Issue
Block a user