Add basic build and inject scripts

Linux-only for now.
This commit is contained in:
1024x2 2024-04-25 00:50:36 +01:00
parent f812b79a28
commit d23bd89aca
Signed by: 1024x2
GPG Key ID: DEF24F6555C1934C
3 changed files with 85 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
Vencord

25
build.sh Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
# Pull the patches repository
git pull
# Do we have the Vencord sources cloned?
if [ -e Vencord/.git ]; then
# Update sources
cd Vencord
git fetch
else
# Clone sources
git clone https://github.com/Vendicated/Vencord.git Vencord
cd Vencord
fi
# Reset vexcord branch and apply patches
git checkout -B vexcord origin/main
git am ../*.patch
# Build vencord
pnpm i --frozen-lockfile
node scripts/build/build.mjs

59
inject.sh Executable file
View File

@ -0,0 +1,59 @@
#!/usr/bin/env bash
set -euo pipefail
# Wraps the string in quotes, and escapes quotes, backslashes, and newlines.
jsonescape() {
sed -e 's|[\\"]|\\&|g' -e 's|\n|\\n|g' -e 's/^\|$/"/g'
}
discord=""
if [ "$#" -ge 1 ]; then
discord="$1"
else
# Find where the system installation of Discord is.
for path in \
/opt/discord \
/opt/discord-ptb \
/opt/discord-canary \
/usr/share/discord \
/usr/share/discord-ptb \
/usr/share/discord-canary; do
if [ -d "$path" ]; then
discord="$path"
break
fi
done
if [ -z "$discord" ]; then
echo "Could not find your system installation of Discord!" 2>&1
echo "Please pass the path to your Discord installation:" 2>&1
echo " $0 [path_to_discord]" 2>&1
exit 1
fi
fi
if [ ! -e "$discord/resources" ]; then
echo "Directory does not exist: $discord/resources" 2>&1
exit 1
elif [ ! -w "$discord/resources" ]; then
echo "Can't write to directory: $discord/resources" 2>&1
echo "If you're installing Vexcord to your system Discord installation," 2>&1
echo "try running this script as root. (e.g. using sudo)" 2>&1
exit 1
fi
# Move app.asar to _app.asar
if [ -f "$discord/resources/app.asar" ]; then
mv -T "$discord/resources/app.asar" "$discord/resources/_app.asar"
elif [ ! -d "$discord/resources/app.asar" ]; then
echo "Missing app.asar!" >&2
echo "Try reinstalling discord." >&2
exit 1
fi
# Make our own fake app.asar that just points to the Vencord patcher.
mkdir -p "$discord/resources/app.asar"
echo "require($(realpath Vencord/dist/patcher.js | jsonescape))" >"$discord/resources/app.asar/index.js"
echo '{"main": "index.js", "name": "discord"}' >"$discord/resources/app.asar/package.json"
echo "Installed Vexcord to: $discord"