import * as fs from "node:fs"; import {Nullable} from "../types/Nullable"; import {DataManager} from "discord.js"; import * as util from "node:util"; export type BuildContext = { target: string, commitHash: string, commitLink: string, label: string, } export class BuildContextGetter { private static EXPECTED_PATHS = [ "./deploy.json", "./dist/deploy.json" ]; private static GIT_PATH = "https://git.iedsoftworks.com/neintonine/pnp-scheduler/commit/%s"; getContext(): Nullable { const path = this.findValidPath(); if (!path) { return null; } const jsonData = fs.readFileSync(path).toString(); const data = JSON.parse(jsonData); return { ...data, commitLink: util.format(BuildContextGetter.GIT_PATH, data.commitHash) } } private findValidPath(): Nullable { return BuildContextGetter.EXPECTED_PATHS.find((path) => { return fs.existsSync(path); }); } }