diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-08-25 14:15:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-25 14:15:02 +0200 |
commit | 714d87241ceb07dfd6c08cee55347a937e97a279 (patch) | |
tree | e65caebca7a459c3bd29e69573fcac9398132218 | |
parent | f628aa7a70fdf33757995836bca90dcd4d759d37 (diff) | |
download | Vencord-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-x | scripts/build/build.mjs | 5 | ||||
-rw-r--r-- | scripts/build/buildWeb.mjs | 5 | ||||
-rw-r--r-- | scripts/build/common.mjs | 18 | ||||
-rw-r--r-- | src/components/VencordSettings/UpdaterTab.tsx | 2 | ||||
-rw-r--r-- | src/globals.d.ts | 1 | ||||
-rw-r--r-- | src/main/updater/index.ts | 3 | ||||
-rw-r--r-- | src/plugins/_core/settings.tsx | 2 | ||||
-rw-r--r-- | src/utils/updater.ts | 2 |
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 { |