summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: d0b682109291475e70ed2a43217d52ff48a091b9 (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
pkgname=companion
pkgver=2.1.3
pkgrel=2
pkgdesc="Control software for the Elgato Streamdeck with a focus on broadcasting."
arch=('i386' 'x86_64')
url="https://github.com/bitfocus/companion"
license=('custom')
depends=('libvips' 'libxss' 'gconf' 'gtk3')
makedepends=('nvm' 'git')
install=companion.install

source=("${pkgname}::git+https://github.com/bitfocus/companion.git#tag=v${pkgver}"
		"50-bitfocus-companion.rules"
		"bitfocus-companion.desktop")

sha256sums=('SKIP'
            'c0e7cd1f730a7b4381e654b53f6fdd1c06911b2593bdfe07bba5e198fc61d5d9'
            '65289895360dae94dd710e6804709c1e3f95e6bc275b1621cb88eb8a7cbd348f')

_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 ./.nvrc is not (yet) installed in $NVM_DIR
    # but nvm itself still gets loaded ok
    source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
    
    export PATH="$(npm bin):${PATH}"
}

prepare() {
	_ensure_local_nvm

	nvm install 14
	npm install -g node-gyp
	npm install -g yarn
}

build() {
	_ensure_local_nvm

	cd "${srcdir}/${pkgname}"

	git submodule init
	git submodule update

	rm -Rf node_modules bitfocus-skeleton/node_modules lib/module/*/node_modules

	npm install
	npm install --prefix bitfocus-skeleton

	rm -Rf node_modules/sharp/node_modules
	npm install --prefix node_modules/sharp --production

	for module in lib/module/*/; do
		grep '"dependencies"' ${module}package.json > /dev/null 2>&1 && (
			echo ${module}
			yarn --cwd ${module}
			echo ""
		)
	done

	rm -rf electron-output
	npx electron-builder --linux dir
}


package() {
	cd "${srcdir}"

	builddir="${pkgname}/electron-output/linux-unpacked"

	# Licenses
	install -Dm644 "${pkgname}/LICENSE.md" -t "${pkgdir}/usr/share/licenses/${pkgname}/"
	install -Dm644 "${builddir}/LICENSE.electron.txt" -t "${pkgdir}/usr/share/licenses/${pkgname}/"
	install -Dm644 "${builddir}/LICENSES.chromium.html" -t "${pkgdir}/usr/share/licenses/${pkgname}/"

	# Companion
	install -d "${pkgdir}/usr/lib/bitfocus-companion"

	cp -R "${builddir}"/* "${pkgdir}/usr/lib/bitfocus-companion"

	# Install bin symlink
	install -d "${pkgdir}/usr/bin"
	ln -sv "/usr/lib/bitfocus-companion/companion" "${pkgdir}/usr/bin/companion"

	# udev rules
	install -Dm644 50-bitfocus-companion.rules -t "${pkgdir}/etc/udev/rules.d/"

	# Desktop file
	install -Dm644 bitfocus-companion.desktop -t "${pkgdir}/usr/share/applications/"

	# Icon
	install -Dm644 "${pkgname}/assets/icon.png" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/bitfocus-companion.png"
}