mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-18 16:02:10 +00:00
57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
import { log, yamlParse } from "./deps.ts";
|
|
|
|
export interface SyncOptions {
|
|
stateful?: boolean;
|
|
raw?: boolean;
|
|
yes?: boolean;
|
|
skipPull?: boolean;
|
|
failConflicts?: boolean;
|
|
plainSecrets?: boolean;
|
|
json?: boolean;
|
|
skipVariables?: boolean;
|
|
skipResources?: boolean;
|
|
skipSecrets?: boolean;
|
|
includeSchedules?: boolean;
|
|
includeUsers?: boolean;
|
|
includeGroups?: boolean;
|
|
includeSettings?: boolean;
|
|
message?: string;
|
|
includes?: string[];
|
|
extraIncludes?: string[];
|
|
excludes?: string[];
|
|
defaultTs?: "bun" | "deno";
|
|
codebases?: Codebase[];
|
|
}
|
|
|
|
export interface Codebase {
|
|
relative_path: string;
|
|
includes?: string[];
|
|
excludes?: string[];
|
|
}
|
|
|
|
export async function readConfigFile(): Promise<SyncOptions> {
|
|
try {
|
|
const conf = yamlParse(
|
|
await Deno.readTextFile("wmill.yaml")
|
|
) as SyncOptions;
|
|
if (conf?.defaultTs == undefined) {
|
|
log.warning(
|
|
"No defaultTs defined in your wmill.yaml. Using 'bun' as default."
|
|
);
|
|
}
|
|
return typeof conf == "object" ? conf : ({} as SyncOptions);
|
|
} catch (e) {
|
|
log.warning(
|
|
"No wmill.yaml found. Use 'wmill init' to bootstrap it. Using 'bun' as default typescript runtime."
|
|
);
|
|
return {};
|
|
}
|
|
}
|
|
|
|
export async function mergeConfigWithConfigFile<T>(
|
|
opts: T
|
|
): Promise<T & SyncOptions> {
|
|
const configFile = await readConfigFile();
|
|
return Object.assign(configFile, opts);
|
|
}
|