Files
github-local-actions/src/configurationManager.ts
Sanjula Ganepola 5d4299581f Add all extension settings
Signed-off-by: Sanjula Ganepola <sanjulagane@gmail.com>
2024-11-28 01:24:58 -05:00

53 lines
1.8 KiB
TypeScript

import { ConfigurationTarget, workspace } from 'vscode';
import { Act } from './act';
export enum Platform {
windows = 'win32',
mac = 'darwin',
linux = 'linux'
}
export enum Section {
actCommand = 'actCommand',
dockerDesktopPath = 'dockerDesktopPath'
}
export namespace ConfigurationManager {
export const group: string = 'githubLocalActions';
export const searchPrefix: string = '@ext:sanjulaganepola.github-local-actions';
export async function initialize(): Promise<void> {
let dockerDesktopPath = ConfigurationManager.get<string>(Section.dockerDesktopPath);
if (!dockerDesktopPath) {
switch (process.platform) {
case Platform.windows:
dockerDesktopPath = 'C:/Program Files/Docker/Docker/Docker Desktop.exe';
break;
case Platform.mac:
dockerDesktopPath = '/Applications/Docker.app';
break;
default:
return;
}
await ConfigurationManager.set(Section.dockerDesktopPath, dockerDesktopPath);
}
let actCommand = ConfigurationManager.get<string>(Section.actCommand);
if (!actCommand) {
await ConfigurationManager.set(Section.actCommand, Act.defaultActCommand);
}
}
export function getSearchTerm(section: Section): string {
return `${ConfigurationManager.searchPrefix} ${ConfigurationManager.group}.${section}`;
}
export function get<T>(section: Section): T | undefined {
return workspace.getConfiguration(ConfigurationManager.group).get(section) as T;
}
export async function set(section: Section, value: any): Promise<void> {
return await workspace.getConfiguration(ConfigurationManager.group).update(section, value, ConfigurationTarget.Global);
}
}