aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2023-08-25 14:15:02 +0200
committerGitHub <noreply@github.com>2023-08-25 14:15:02 +0200
commit714d87241ceb07dfd6c08cee55347a937e97a279 (patch)
treee65caebca7a459c3bd29e69573fcac9398132218
parentf628aa7a70fdf33757995836bca90dcd4d759d37 (diff)
downloadVencord-714d87241ceb07dfd6c08cee55347a937e97a279.tar.gz
Vencord-714d87241ceb07dfd6c08cee55347a937e97a279.tar.bz2
Vencord-714d87241ceb07dfd6c08cee55347a937e97a279.zip
build: allow overriding git details & disabling updating (#1677)
Co-authored-by: V <vendicated@riseup.net>
-rwxr-xr-xscripts/build/build.mjs5
-rw-r--r--scripts/build/buildWeb.mjs5
-rw-r--r--scripts/build/common.mjs18
-rw-r--r--src/components/VencordSettings/UpdaterTab.tsx2
-rw-r--r--src/globals.d.ts1
-rw-r--r--src/main/updater/index.ts3
-rw-r--r--src/plugins/_core/settings.tsx2
-rw-r--r--src/utils/updater.ts2
8 files changed, 24 insertions, 14 deletions
diff --git a/scripts/build/build.mjs b/scripts/build/build.mjs
index e044378..ce84fed 100755
--- a/scripts/build/build.mjs
+++ b/scripts/build/build.mjs
@@ -19,13 +19,14 @@
import esbuild from "esbuild";
-import { commonOpts, globPlugins, isStandalone, VERSION, watch } from "./common.mjs";
+import { BUILD_TIMESTAMP, commonOpts, globPlugins, isStandalone, updaterDisabled, VERSION, watch } from "./common.mjs";
const defines = {
IS_STANDALONE: isStandalone,
IS_DEV: JSON.stringify(watch),
+ IS_UPDATER_DISABLED: updaterDisabled,
VERSION: JSON.stringify(VERSION),
- BUILD_TIMESTAMP: Date.now(),
+ BUILD_TIMESTAMP,
};
if (defines.IS_STANDALONE === "false")
// If this is a local build (not standalone), optimise
diff --git a/scripts/build/buildWeb.mjs b/scripts/build/buildWeb.mjs
index 434d176..aab82d0 100644
--- a/scripts/build/buildWeb.mjs
+++ b/scripts/build/buildWeb.mjs
@@ -24,7 +24,7 @@ import { readFileSync } from "fs";
import { appendFile, mkdir, readFile, rm, writeFile } from "fs/promises";
import { join } from "path";
-import { commonOpts, globPlugins, VERSION, watch } from "./common.mjs";
+import { BUILD_TIMESTAMP, commonOpts, globPlugins, VERSION, watch } from "./common.mjs";
/**
* @type {esbuild.BuildOptions}
@@ -46,8 +46,9 @@ const commonOptions = {
IS_DEV: JSON.stringify(watch),
IS_DISCORD_DESKTOP: "false",
IS_VESKTOP: "false",
+ IS_UPDATER_DISABLED: "true",
VERSION: JSON.stringify(VERSION),
- BUILD_TIMESTAMP: Date.now(),
+ BUILD_TIMESTAMP,
}
};
diff --git a/scripts/build/common.mjs b/scripts/build/common.mjs
index b63ea61..a12e9ee 100644
--- a/scripts/build/common.mjs
+++ b/scripts/build/common.mjs
@@ -30,15 +30,18 @@ import PackageJSON from "../../package.json" assert { type: "json" };
import { getPluginTarget } from "../utils.mjs";
export const VERSION = PackageJSON.version;
-export const BUILD_TIMESTAMP = Date.now();
+// https://reproducible-builds.org/docs/source-date-epoch/
+export const BUILD_TIMESTAMP = Number(process.env.SOURCE_DATE_EPOCH) || Date.now();
export const watch = process.argv.includes("--watch");
export const isStandalone = JSON.stringify(process.argv.includes("--standalone"));
-export const gitHash = execSync("git rev-parse --short HEAD", { encoding: "utf-8" }).trim();
+export const updaterDisabled = JSON.stringify(process.argv.includes("--disable-updater"));
+export const gitHash = process.env.VENCORD_HASH || execSync("git rev-parse --short HEAD", { encoding: "utf-8" }).trim();
export const banner = {
js: `
// Vencord ${gitHash}
// Standalone: ${isStandalone}
// Platform: ${isStandalone === "false" ? process.platform : "Universal"}
+// Updater disabled: ${updaterDisabled}
`.trim()
};
@@ -133,11 +136,14 @@ export const gitRemotePlugin = {
namespace: "git-remote", path: args.path
}));
build.onLoad({ filter, namespace: "git-remote" }, async () => {
+ let remote = process.env.VENCORD_REMOTE;
+ if (!remote) {
const res = await promisify(exec)("git remote get-url origin", { encoding: "utf-8" });
- const remote = res.stdout.trim()
- .replace("https://github.com/", "")
- .replace("git@github.com:", "")
- .replace(/.git$/, "");
+ remote = res.stdout.trim()
+ .replace("https://github.com/", "")
+ .replace("git@github.com:", "")
+ .replace(/.git$/, "");
+ }
return { contents: `export default "${remote}"` };
});
diff --git a/src/components/VencordSettings/UpdaterTab.tsx b/src/components/VencordSettings/UpdaterTab.tsx
index 4d0b86c..6766cf0 100644
--- a/src/components/VencordSettings/UpdaterTab.tsx
+++ b/src/components/VencordSettings/UpdaterTab.tsx
@@ -249,4 +249,4 @@ function Updater() {
);
}
-export default IS_WEB ? null : wrapTab(Updater, "Updater");
+export default IS_UPDATER_DISABLED ? null : wrapTab(Updater, "Updater");
diff --git a/src/globals.d.ts b/src/globals.d.ts
index 720cd5e..daccf33 100644
--- a/src/globals.d.ts
+++ b/src/globals.d.ts
@@ -35,6 +35,7 @@ declare global {
export var IS_WEB: boolean;
export var IS_DEV: boolean;
export var IS_STANDALONE: boolean;
+ export var IS_UPDATER_DISABLED: boolean;
export var IS_DISCORD_DESKTOP: boolean;
export var IS_VESKTOP: boolean;
export var VERSION: string;
diff --git a/src/main/updater/index.ts b/src/main/updater/index.ts
index 7036112..32d5cd6 100644
--- a/src/main/updater/index.ts
+++ b/src/main/updater/index.ts
@@ -16,4 +16,5 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import(IS_STANDALONE ? "./http" : "./git");
+if (!IS_UPDATER_DISABLED)
+ import(IS_STANDALONE ? "./http" : "./git");
diff --git a/src/plugins/_core/settings.tsx b/src/plugins/_core/settings.tsx
index e5f710c..88ebb57 100644
--- a/src/plugins/_core/settings.tsx
+++ b/src/plugins/_core/settings.tsx
@@ -103,7 +103,7 @@ export default definePlugin({
element: require("@components/VencordSettings/ThemesTab").default,
className: "vc-themes"
},
- !IS_WEB && {
+ !IS_UPDATER_DISABLED && {
section: "VencordUpdater",
label: "Updater",
element: require("@components/VencordSettings/UpdaterTab").default,
diff --git a/src/utils/updater.ts b/src/utils/updater.ts
index 2e2bfe1..f99c6ca 100644
--- a/src/utils/updater.ts
+++ b/src/utils/updater.ts
@@ -63,7 +63,7 @@ export async function update() {
export const getRepo = () => Unwrap(VencordNative.updater.getRepo());
export async function maybePromptToUpdate(confirmMessage: string, checkForDev = false) {
- if (IS_WEB) return;
+ if (IS_WEB || IS_UPDATER_DISABLED) return;
if (checkForDev && IS_DEV) return;
try {