forked from XiaoMo/ChatGPT-Next-Web
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import tauriConfig from "../../src-tauri/tauri.conf.json";
|
|
|
|
export const getBuildConfig = () => {
|
|
if (typeof process === "undefined") {
|
|
throw Error(
|
|
"[Server Config] you are importing a nodejs-only module outside of nodejs",
|
|
);
|
|
}
|
|
|
|
const buildMode = process.env.BUILD_MODE ?? "standalone";
|
|
const isApp = !!process.env.BUILD_APP;
|
|
const version = "v" + tauriConfig.package.version;
|
|
|
|
const commitInfo = (() => {
|
|
try {
|
|
const childProcess = require("child_process");
|
|
const commitDate: string = childProcess
|
|
.execSync('git log -1 --format="%at000" --date=unix')
|
|
.toString()
|
|
.trim();
|
|
const commitHash: string = childProcess
|
|
.execSync('git log --pretty=format:"%H" -n 1')
|
|
.toString()
|
|
.trim();
|
|
|
|
return { commitDate, commitHash };
|
|
} catch (e) {
|
|
console.error("[Build Config] No git or not from git repo.");
|
|
return {
|
|
commitDate: "unknown",
|
|
commitHash: "unknown",
|
|
};
|
|
}
|
|
})();
|
|
|
|
return {
|
|
version,
|
|
...commitInfo,
|
|
buildMode,
|
|
isApp,
|
|
};
|
|
};
|
|
|
|
export type BuildConfig = ReturnType<typeof getBuildConfig>;
|