Monorepo for @ducky.ws's experiments and scripts
ducky.ws
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}