blob: 0d63cef914f6bd9780f395654bd773b92941e658 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# Maintainer ArjixWasTaken <me@arjix.dev>
# shellcheck shell=bash
# shellcheck disable=SC2034,SC2154,SC2155,SC2164
pkgname=equicord-openasar
_pkgname=equicord
pkgver=1.0.137.r7648g1e353f3bd.r863g5a05f49
pkgrel=1
pkgdesc='The other cutest Discord client mod (with OpenAsar)'
arch=('x86_64')
url='https://equicord.org/'
license=('custom')
options=('!debug' '!strip')
depends=('libnotify' 'libxss' 'nspr' 'nss' 'gtk3' 'hicolor-icon-theme')
optdepends=('libpulse: PulseAudio support'
'libappindicator-gtk3: Systray indicator support'
'xdg-utils: For opening URLs and files')
makedepends=('git' 'nvm' 'pnpm' 'wget' 'asar')
provides=("$_pkgname")
conflicts=("$_pkgname")
source=(
'equicord-source::git+https://github.com/Equicord/Equicord.git'
'openasar-source::git+https://github.com/GooseMod/OpenAsar.git'
'discord-pkgbuild::https://gitlab.archlinux.org/archlinux/packaging/packages/discord/-/raw/main/PKGBUILD'
'equicord.desktop'
'equicord.png'
'equicord.sh'
)
sha512sums=('SKIP'
'SKIP'
'SKIP'
'25c3e3cbef8c981a42ba059f589ffc9ebe8c81406fa6cd6b000ed7b4e3c7b95ae96108df2a29096a8c527153b3becf98b1769b2af75d5f6cf0fe69edd2b3da3a'
'94f091c05c365986d556616404e00344a1d8e4ba93ad1875c0d3d96b1d0a643a799343fe6b84dcf7013ea3f9d47a3380540d8212bbf3fb6f5ddf39840ffe38d5'
'0fa583c0ea3645298afd34d598a9745095e44eac04ee4327d6e484ebeeeebb942cd6267ef7b706c40408419b560537bde6413c9b046c8d262028a79bef843d70')
pkgver() {
local discord_ver=$(grep -oE '^pkgver=(.*?)$' discord-pkgbuild)
local equicord_ver
{
local commits sha
pushd equicord-source
commits=$(git rev-list --count HEAD)
sha=$(git rev-parse --short HEAD)
popd
equicord_ver="r${commits}g${sha}"
} > /dev/null
local openasar_ver
{
local commits sha
pushd openasar-source
commits=$(git rev-list --count HEAD)
sha=$(git rev-parse --short HEAD)
popd
openasar_ver="r${commits}g${sha}"
} > /dev/null
echo "${discord_ver#pkgver=}.${equicord_ver}.${openasar_ver}"
}
_ensure_local_nvm() {
# let's be sure we are starting clean
which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload
export NVM_DIR="${srcdir}/.nvm"
# The init script returns 3 if version specified
# in ./.nvmrc is not (yet) installed in $NVM_DIR
# but nvm itself still gets loaded ok
# shellcheck source=/dev/null
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
}
prepare() {
export PNPM_HOME="$srcdir/pnpm-home"
pushd equicord-source
_ensure_local_nvm
nvm install --lts
pnpm install --frozen-lockfile
sed -i \
-e '#async function fetchUpdates\(\) {#a return false;' \
-e '#async function applyUpdates\(\) {#a return false;' \
src/main/updater/http.ts
popd
pushd openasar-source
sed -i -e "s|nightly|nightly-$(git rev-parse HEAD | cut -c 1-7)|" src/index.js
sed -i -e "/config.setup = true/a\ config.autoupdate = false;" src/config/index.js
sed -i -e "s|^Exec=\${exec}$|Exec=/usr/bin/${_pkgname}|" \
-e "s|^Name=\${basename(exec)}$|Name=${_pkgname^}|" src/autoStart.js
node scripts/strip.js
asar pack src openasar.asar
popd
}
build() {
export PNPM_HOME="$srcdir/pnpm-home"
local discord_ver="${pkgver%%.r*}"
echo "Downloading discord: v$discord_ver"
wget "https://dl.discordapp.net/apps/linux/$discord_ver/discord-$discord_ver.tar.gz" \
-O "discord-$discord_ver.tar.gz" \
--continue
rm -rf "discord-$discord_ver"; mkdir "discord-$discord_ver"
tar -xzvf "discord-$discord_ver.tar.gz" -C "discord-$discord_ver" --strip-components=1
pushd equicord-source
_ensure_local_nvm
EQUICORD_REMOTE="Equicord/Equicord" pnpm buildStandalone
pushd dist
mkdir app
echo '{"name": "discord", "main": "index.js"}' > app/package.json
echo 'require(require("path").resolve(require("electron").app.getAppPath(), "..", "equicord.asar"));' > app/index.js
asar pack app app.asar
rm -rf app
popd
popd
local entry_hash="$(sha256sum equicord-source/dist/app.asar | awk '{print $1}')"
local openasar_hash="$(sha256sum openasar-source/openasar.asar | awk '{print $1}')"
local equicord_hash="$(sha256sum equicord-source/dist/desktop.asar | awk '{print $1}')"
sed -i \
-e 's/INSERT_ENTRYPOINT_HASH_HERE/'"$entry_hash"'/' \
-e 's/INSERT_OPENASAR_HASH_HERE/'"$openasar_hash"'/' \
-e 's/INSERT_EQUICORD_HASH_HERE/'"$equicord_hash"'/' \
equicord.sh
}
package() {
local discord="$(pwd)/discord-${pkgver%%.r*}"
local equicord="$(pwd)/equicord-source"
local openasar="$(pwd)/openasar-source"
install -Dm755 $_pkgname.sh "$pkgdir"/usr/bin/$_pkgname
install -Dm644 $_pkgname.desktop "$pkgdir"/usr/share/applications/$_pkgname.desktop
install -Dm644 $_pkgname.png "$pkgdir"/usr/share/icons/hicolor/256x256/apps/$_pkgname.png
cd "$discord"
install -Dm755 updater_bootstrap "$pkgdir"/usr/share/$_pkgname/updater_bootstrap
cd "$equicord"
install -Dm644 dist/app.asar "$pkgdir"/usr/share/$_pkgname/app.asar
install -Dm644 dist/desktop.asar "$pkgdir"/usr/share/$_pkgname/equicord.asar
cd "$openasar"
install -Dm644 openasar.asar "$pkgdir"/usr/share/$_pkgname/openasar.asar
}
|