summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 623770d89516219f7cd9070d87231d609a99065d (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
# Maintainer: Moses Narrow <moe_narrow@use.startmail.com>
projectname=pterodactyl
pkgname=pterodactyl-daemon
pkgname1=daemon
githuborg=pterodactyl
pkgdesc="Open-source server control and management daemon for pterodactyl-panel."
pkgver=0.6.12
pkgpath="github.com/${githuborg}/${pkgname1}"
pkgrel=4
arch=('any')
url="https://${pkgpath}"
license=()
makedepends=()
#https://pterodactyl.io/community/installation-guides/daemon/debian10.html#server-configuration
depends=(docker nodejs-lts-dubnium npm53)
source=("${url}/releases/download/v${pkgver}/${pkgname1}.tar.gz")
sha256sums=('aef507f4b9f1272b678cf8b23c0cf0db58d1bba4e8a02d6744018f63db4ff66a')

build() {
	mkdir -p ${srcdir}/npm-cache
	echo -e "[Unit]
	Description=Pterodactyl Wings Daemon
	After=docker.service

	[Service]
	User=root
	#Group=some_group
	WorkingDirectory=/srv/daemon
	LimitNOFILE=4096
	PIDFile=/var/run/wings/daemon.pid
	ExecStart=/usr/bin/node /srv/daemon/src/index.js
	Restart=on-failure
	StartLimitInterval=600

	[Install]
	WantedBy=multi-user.target
	" > ${srcdir}/wings.service

	echo -e '#!/bin/bash
	#launch pterodactyl daemon
	cd /srv/daemon
	sudo npm start
	' > ${srcdir}/${pkgname}.sh
	chmod +x ${srcdir}/${pkgname}.sh
	echo -e "#!/usr/bin/bash
	#set up pterodactyl daemon config.json
	sudo nano /srv/daemon/config/core.json" >  ${srcdir}/${pkgname}-config.sh
	chmod +x ${srcdir}/${pkgname}-config.sh
}

package() {
	#https://pterodactyl.io/daemon/getting_started.html#download-files
	mkdir -p ${pkgdir}/usr/bin/
	mkdir -p ${pkgdir}/usr/lib/systemd/system/
	mkdir -p ${pkgdir}/srv/${pkgname1}/npm-cache
	mkdir -p ${pkgdir}/srv/${pkgname1}-data
	# See https://github.com/npm/npm/issues/9359 for details.
	cd ${pkgdir}/srv/${pkgname1}
	tar --strip-components=1 -xzvf ${srcdir}/${pkgname1}.tar.gz
	#npm install --cache "${srcdir}/npm-cache" -g --user root --prefix ${pkgdir}/srv/${pkgname1} ${srcdir}/${pkgname1}.tar.gz #"$pkgdir"/usr	# Non-deterministic race in npm gives 777 permissions to random directories.
	npm install --only=production --user root #--cache "${srcdir}/npm-cache" -g #--prefix ${pkgdir}/srv/${pkgname1} #${srcdir}/${pkgname1}.tar.gz #"$pkgdir"/usr	# Non-deterministic race in npm gives 777 permissions to random directories.
	#npm install --cache "${srcdir}/npm-cache"  --only=production -g --user root --prefix ${pkgdir}/srv/${pkgname1} shs2 ssh2-streams chokidar mmagic fsevents
	find "${pkgdir}"/srv/${pkgname1} -type d -exec chmod 755 {} +
	# npm gives ownership of ALL FILES to build user
	chown -R root:root "$pkgdir"
	# https://bugs.archlinux.org/task/63396
	#install scripts & systemd service
  install -Dm755 ${srcdir}/${pkgname}.sh ${pkgdir}/srv/${pkgname1}/${pkgname}.sh
	ln -rTsf ${pkgdir}/srv/${pkgname1}/${pkgname}.sh ${pkgdir}/usr/bin/${pkgname}
	install -Dm755 ${srcdir}/${pkgname}-config.sh ${pkgdir}/srv/${pkgname1}/${pkgname}-config.sh
	ln -rTsf ${pkgdir}/srv/${pkgname1}/${pkgname}-config.sh ${pkgdir}/usr/bin/${pkgname}-config
	install -Dm644 ${srcdir}/wings.service ${pkgdir}/usr/lib/systemd/system/
}