Download packages/cli/src/config/extensions/storage.ts from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 1.09 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/config/extensions/storage.ts
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/cli/src/config/extensions/storage.ts
-
curl -L -o storage.ts https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/config/extensions/storage.ts
1.09 kB
| /** | |
| * @license | |
| * Copyright 2025 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import * as path from 'node:path'; | |
| import * as fs from 'node:fs'; | |
| import * as os from 'node:os'; | |
| import { | |
| EXTENSION_SETTINGS_FILENAME, | |
| EXTENSIONS_CONFIG_FILENAME, | |
| } from './variables.js'; | |
| import { Storage, homedir } from '@google/gemini-cli-core'; | |
| export class ExtensionStorage { | |
| private readonly extensionName: string; | |
| constructor(extensionName: string) { | |
| this.extensionName = extensionName; | |
| } | |
| getExtensionDir(): string { | |
| return path.join( | |
| ExtensionStorage.getUserExtensionsDir(), | |
| this.extensionName, | |
| ); | |
| } | |
| getConfigPath(): string { | |
| return path.join(this.getExtensionDir(), EXTENSIONS_CONFIG_FILENAME); | |
| } | |
| getEnvFilePath(): string { | |
| return path.join(this.getExtensionDir(), EXTENSION_SETTINGS_FILENAME); | |
| } | |
| static getUserExtensionsDir(): string { | |
| return new Storage(homedir()).getExtensionsDir(); | |
| } | |
| static async createTmpDir(): Promise<string> { | |
| return fs.promises.mkdtemp(path.join(os.tmpdir(), 'gemini-extension')); | |
| } | |
| } | |