Monorepo for @ducky.ws's experiments and scripts ducky.ws
at main 49 lines 1.4 kB view raw
1 2export async function getCurrentGitHash(): Promise<string | null> { 3 try { 4 const process = Deno.run({ 5 cmd: ["git", "rev-parse", "HEAD"], 6 stdout: "piped", 7 stderr: "piped", 8 }); 9 10 const output = await process.output(); 11 const decoder = new TextDecoder(); 12 const hash = decoder.decode(output).trim(); 13 14 await process.status(); 15 16 return hash; 17 } catch (error) { 18 console.error("Error getting git hash:", error); 19 return null; 20 } 21} 22 23export function getEnvvar(value: string, defaultValue: string | undefined = undefined): string | null { 24 const prefix = "DPG_"; 25 let envvarValue = Deno.env.get(`${prefix}${value.toUpperCase()}`); 26 27 if(envvarValue !== undefined) 28 return envvarValue 29 else 30 if(defaultValue !== undefined) 31 return defaultValue 32 else 33 return null 34} 35 36export function getEnvvarAsBool(value: string, defaultValue: string | undefined = undefined): Boolean { 37 const envvar = getEnvvar(value, defaultValue); 38 39 if(envvar === "1" || envvar === "true") 40 return true; 41 else 42 return false; 43} 44 45export async function getUAS(progName: string = "unknown-prog"): Promise<string> { 46 let version = await getCurrentGitHash(); 47 version = version !== null ? version.substring(0,7) : "0000000"; 48 return `dpg.${progName}/${version}`; 49}