blob: 933479e55fba17c575ec00e9c5b136265399706d (
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
|
# Maintainer: Sebastian Meyer <mail@bastimeyer.de>
# maintained at https://github.com/streamlink/streamlink-twitch-gui-aur
pkgname=streamlink-twitch-gui
pkgver=2.5.3
pkgrel=1
pkgdesc="A multi platform Twitch.tv browser for Streamlink"
arch=("i686" "x86_64")
url="https://github.com/streamlink/streamlink-twitch-gui"
license=("MIT")
depends=("alsa-lib" "gtk3" "libxss" "nss" "streamlink")
makedepends=("nodejs" "yarn")
options=(!strip)
# https://github.com/streamlink/streamlink-twitch-gui/blob/v2.5.2/build/tasks/configs/nwjs.js#L60-L81
_nwjs=0.83.0
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/streamlink/${pkgname}/archive/refs/tags/v${pkgver}.tar.gz")
source_i686=("nwjs-${_nwjs}-linux32.tar.gz::https://dl.nwjs.io/v${_nwjs}/nwjs-v${_nwjs}-linux-ia32.tar.gz")
source_x86_64=("nwjs-${_nwjs}-linux64.tar.gz::https://dl.nwjs.io/v${_nwjs}/nwjs-v${_nwjs}-linux-x64.tar.gz")
noextract=("nwjs-${_nwjs}-linux"{32,64}".tar.gz")
sha256sums=('dac012e1dca9731ac3f95d7bc1d7e0f752abdd82166f89b4697189774b3035e5')
# https://dl.nwjs.io/${_nwjs}/SHASUMS256.txt{,.asc} (1E8BEE8D5B0C4CBCD6D19E2678680FA9E21BB40A - Roger Wang <roger@nwjs.io>)
sha256sums_i686=('f7df845382a0f251fc7da711988976495dc6c96530e3aac6629b28e5048ffff9')
sha256sums_x86_64=('cb4a0156f560b910dedfdd44b10b3aa98aa44d13f351f9b9d26e8d0ce661fbba')
[[ "${CARCH}" == "x86_64" ]] && _arch=linux64 || _arch=linux32
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
# extract NW.js to the build/cache directory for nwjs-builder
mkdir -p "./build/cache/${_nwjs}-normal/${_arch}"
bsdtar -x --strip-components=1 \
-C "./build/cache/${_nwjs}-normal/${_arch}" \
-f "${srcdir}/nwjs-${_nwjs}-${_arch}.tar.gz"
# install NodeJS dependencies
yarn install --pure-lockfile
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
yarn run grunt clean:tmp_prod webpack:prod "compile:${_arch}"
}
package() {
# the dir of the built application
cd "${srcdir}/${pkgname}-${pkgver}/build/releases/${pkgname}/${_arch}"
# set up package directories
install -d \
"${pkgdir}/opt/${pkgname}/" \
"${pkgdir}/usr/bin/" \
"${pkgdir}/usr/share/applications/"
# copy licenses
install -Dm644 \
-t "${pkgdir}/usr/share/licenses/${pkgname}/" \
"./LICENSE.txt" \
"./credits.html"
# copy appstream metainfo
install -Dm644 \
-t "${pkgdir}/usr/share/metainfo/" \
"./${pkgname}.appdata.xml"
# copy application content and remove unneeded files and dirs
cp -a ./ "${pkgdir}/opt/${pkgname}/"
rm -r "${pkgdir}/opt/${pkgname}/"{{add,remove}-menuitem.sh,LICENSE.txt,credits.html,"${pkgname}.appdata.xml",icons/}
# create custom start script and disable version check
cat > "${pkgdir}/usr/bin/${pkgname}" <<-EOF
#!/usr/bin/env bash
/opt/${pkgname}/${pkgname} "\$@" --no-version-check
EOF
chmod +x "${pkgdir}/usr/bin/${pkgname}"
# copy icons
for res in 16 32 48 64 128 256; do
install -Dm644 \
"./icons/icon-${res}.png" \
"${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps/${pkgname}.png"
done
# create menu shortcut
cat > "${pkgdir}/usr/share/applications/${pkgname}.desktop" <<-EOF
[Desktop Entry]
Type=Application
Name=Streamlink Twitch GUI
GenericName=Twitch.tv browser for Streamlink
Comment=Browse Twitch.tv and watch streams in your videoplayer of choice
Keywords=streamlink;twitch;streaming;
Categories=AudioVideo;Network;
StartupWMClass=streamlink-twitch-gui
Exec=/usr/bin/${pkgname}
Icon=${pkgname}
EOF
}
|