35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import memoize from 'lodash-es/memoize.js'
|
|
import { join } from 'path'
|
|
import { getPlatform } from '../platform.js'
|
|
|
|
/**
|
|
* Get the path to the managed settings directory based on the current platform.
|
|
*/
|
|
export const getManagedFilePath = memoize(function (): string {
|
|
// Allow override for testing/demos (Ant-only, eliminated from external builds)
|
|
if (
|
|
process.env.USER_TYPE === 'ant' &&
|
|
process.env.CLAUDE_CODE_MANAGED_SETTINGS_PATH
|
|
) {
|
|
return process.env.CLAUDE_CODE_MANAGED_SETTINGS_PATH
|
|
}
|
|
|
|
switch (getPlatform()) {
|
|
case 'macos':
|
|
return '/Library/Application Support/ClaudeCode'
|
|
case 'windows':
|
|
return 'C:\\Program Files\\ClaudeCode'
|
|
default:
|
|
return '/etc/claude-code'
|
|
}
|
|
})
|
|
|
|
/**
|
|
* Get the path to the managed-settings.d/ drop-in directory.
|
|
* managed-settings.json is merged first (base), then files in this directory
|
|
* are merged alphabetically on top (drop-ins override base, later files win).
|
|
*/
|
|
export const getManagedSettingsDropInDir = memoize(function (): string {
|
|
return join(getManagedFilePath(), 'managed-settings.d')
|
|
})
|