export async function getCurrentGitHash(): Promise { try { const process = Deno.run({ cmd: ["git", "rev-parse", "HEAD"], stdout: "piped", stderr: "piped", }); const output = await process.output(); const decoder = new TextDecoder(); const hash = decoder.decode(output).trim(); await process.status(); return hash; } catch (error) { console.error("Error getting git hash:", error); return null; } } export function getEnvvar(value: string, defaultValue: string | undefined = undefined): string | null { const prefix = "DPG_"; let envvarValue = Deno.env.get(`${prefix}${value.toUpperCase()}`); if(envvarValue !== undefined) return envvarValue else if(defaultValue !== undefined) return defaultValue else return null } export function getEnvvarAsBool(value: string, defaultValue: string | undefined = undefined): Boolean { const envvar = getEnvvar(value, defaultValue); if(envvar === "1" || envvar === "true") return true; else return false; } export async function getUAS(progName: string = "unknown-prog"): Promise { let version = await getCurrentGitHash(); version = version !== null ? version.substring(0,7) : "0000000"; return `dpg.${progName}/${version}`; }