diff --git a/src/pages/settings/Settings.tsx b/src/pages/settings/Settings.tsx index a8713521d8c832b29ad4ced111430ae871642af4..58be985a8218585a52e6d5144fbaa9808c5486e9 100644 --- a/src/pages/settings/Settings.tsx +++ b/src/pages/settings/Settings.tsx @@ -20,7 +20,7 @@ import { User } from "@styled-icons/feather"; import { Megaphone } from "@styled-icons/bootstrap"; -import { GIT_REVISION, REPO_URL } from "../../revision"; +import { GIT_BRANCH, GIT_REVISION, REPO_URL } from "../../revision"; import LineDivider from "../../components/ui/LineDivider"; import RequiresOnline from "../../context/revoltjs/RequiresOnline"; import ButtonItem from "../../components/navigation/items/ButtonItem"; @@ -147,8 +147,12 @@ export default function Settings() { <a href={`${REPO_URL}/${GIT_REVISION}`} target="_blank"> { GIT_REVISION.substr(0, 7) } </a> + {` `} + <a href={GIT_BRANCH !== 'DETACHED' ? `https://gitlab.insrt.uk/revolt/client/-/tree/${GIT_BRANCH}` : undefined} target="_blank"> + ({ GIT_BRANCH }) + </a> </span> - <span>Stable {APP_VERSION}</span> + <span>{ GIT_BRANCH === 'production' ? 'Stable' : 'Nightly' } {APP_VERSION}</span> <span>API: {client.configuration?.revolt ?? "N/A"}</span> <span>revolt.js: {LIBRARY_VERSION}</span> </div> diff --git a/src/revision.ts b/src/revision.ts index ab519af021427865bdf0bb9915aa2a1d299d4313..e01dcdda3515714a15fa6c6b1226800b29ad3f5b 100644 --- a/src/revision.ts +++ b/src/revision.ts @@ -1,2 +1,3 @@ -export const GIT_REVISION = '__GIT_REVISION__'; export const REPO_URL = 'https://gitlab.insrt.uk/revolt/revite/-/commit'; +export const GIT_REVISION = '__GIT_REVISION__'; +export const GIT_BRANCH: string = '__GIT_BRANCH__'; diff --git a/vite.config.ts b/vite.config.ts index e797ce48fbdf5fa572f9e4af79ad6eb6f7560670..d3b5762afc754fc13c79538249bc260bc638543d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -19,6 +19,20 @@ function getGitRevision() { } } +function getGitBranch() { + try { + const rev = readFileSync('.git/HEAD').toString().trim(); + if (rev.indexOf(':') === -1) { + return 'DETACHED'; + } else { + return rev.split('/').pop(); + } + } catch (err) { + console.error('Failed to get Git branch.'); + return '?'; + } +} + function getVersion() { return readFileSync('VERSION').toString(); } @@ -55,6 +69,7 @@ export default defineConfig({ }), replace({ __GIT_REVISION__: getGitRevision(), + __GIT_BRANCH__: getGitBranch(), __APP_VERSION__: getVersion(), preventAssignment: true })