# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=nextcloud
pkgver=12.0.0
pkgrel=1
pkgdesc="A safe home for all your data"
url="http://nextcloud.com"
arch="noarch"
license="AGPL"
_php=php7
depends="$_php $_php-ctype $_php-curl $_php-dom $_php-gd $_php-fileinfo
	$_php-iconv $_php-json $_php-mbstring $_php-openssl
	$_php-session $_php-simplexml $_php-xml $_php-xmlreader
	$_php-xmlwriter $_php-zlib $_php-zip
	"
makedepends="$depends_dev"
options="!check"
subpackages="$pkgname-doc $pkgname-initscript $pkgname-activity $pkgname-encryption
	$pkgname-firstrunwizard $pkgname-gallery $pkgname-ldap
	$pkgname-logreader $pkgname-mysql $pkgname-notifications
	$pkgname-password_policy $pkgname-pdfviewer $pkgname-pgsql
	$pkgname-sqlite $pkgname-texteditor $pkgname-videoplayer
	"

source="https://download.nextcloud.com/server/releases/$pkgname-$pkgver.zip
	nextcloud10-dont-chmod-config.patch
	nextcloud.logrotate
	$pkgname.confd
	fpm-pool.conf
	"
pkgusers="nextcloud"
pkggroups="www-data"
builddir="$srcdir"/$pkgname

_ncbasedir="/var/lib/$pkgname"
_ncdatadir="$_ncbasedir/data"
_ncwwwdir="/usr/share/webapps/$pkgname"
_ncappsdir="$_ncbasedir/apps"
_ncconfdir="/etc/$pkgname"

build() {
	cd "$builddir"
	return 0
}

package() {
	cd "$builddir"
	for dir in ${_ncconfdir} ${_ncdatadir} ${_ncwwwdir}; do
		mkdir -p "$pkgdir"$dir
	done
	rm -rf config data
	mv * "$pkgdir"${_ncwwwdir}
	chmod +x "$pkgdir"${_ncwwwdir}/occ
	ln -s $_ncconfdir "$pkgdir"${_ncwwwdir}/config
	install -m664 .htaccess "$pkgdir"${_ncwwwdir}/.htaccess
	install -m664 .user.ini "$pkgdir"${_ncwwwdir}/.user.ini
	install -m664 ../../${pkgname}-config.php "$pkgdir"/etc/$pkgname/config.php
	mv "$pkgdir"$_ncwwwdir/apps "$pkgdir"$_ncbasedir
	ln -s $_ncappsdir "$pkgdir"$_ncwwwdir/apps
	install -m775 -g www-data -d "$pkgdir"/var/log/nextcloud
	install -m644 -D "$srcdir"/nextcloud.logrotate "$pkgdir"/etc/logrotate.d/nextcloud
	for dir in ${_ncconfdir} ${_ncdatadir} ${_ncappsdir}; do
		chown -R :www-data "$pkgdir"$dir
		chmod -R 770 "$pkgdir"$dir
	done
}

doc() {
	pkgdesc="Nextcloud documentation"
	depends="$pkgname"
	mkdir -p "$subpkgdir"/usr/share/doc/nextcloud/core
	mv "$pkgdir"/usr/share/webapps/nextcloud/core/doc \
	 "$subpkgdir"/usr/share/doc/nextcloud/core
}

initscript() {
	pkgdesc="Init script that runs Nextcloud with php-fpm"
	depends="$pkgname $_php-fpm $_php-opcache"
	install="$subpkgname.pre-install $subpkgname.post-install"

	local confdir="$subpkgdir/etc/$_php/php-fpm.d"
	local fpm_name="php-fpm${_php#php}"

	install -m 644 -D "$srcdir"/fpm-pool.conf "$confdir"/$pkgname.conf
	install -m 644 -D "$srcdir"/$pkgname.confd "$subpkgdir"/etc/conf.d/$pkgname

	mkdir -p "$subpkgdir"/etc/init.d
	ln -s $fpm_name "$subpkgdir"/etc/init.d/$pkgname

	install -m 700 -o nextcloud -d "$subpkgdir"/var/tmp/$pkgname
}

pgsql() {
	pkgdesc="Nextcloud PostgreSQL support"
	depends="$pkgname $_php-pgsql $_php-pdo_pgsql"
	mkdir -p "$subpkgdir"${_ncwwwdir}
}

sqlite() {
	pkgdesc="Nextcloud SQLite support"
	depends="$pkgname $_php-sqlite3 $_php-pdo_sqlite"
	mkdir -p "$subpkgdir"${_ncwwwdir}
}

mysql() {
	pkgdesc="Nextcloud MySQL support"
	depends="$pkgname $_php-pdo_mysql"
	mkdir -p "$subpkgdir"${_ncwwwdir}
}

_mv_app() {
	mkdir -p "$subpkgdir"${_ncappsdir}
	if [ "$1" = "pkg" ]; then
		mv "$pkgdir"${_ncappsdir}/$2 "$subpkgdir"${_ncappsdir}
	elif [ "$1" = "src" ]; then
		local appname="${subpkgname#$pkgname-}"
		mv "$srcdir"/$2 "$subpkgdir"${_ncappsdir}/$appname
	fi
	chown -R :www-data "$subpkgdir"${_ncappsdir}
	chmod 770 "$subpkgdir"${_ncappsdir}
}

activity() {
	pkgdesc="Nextcloud Activity app"
	depends="$pkgname"
	_mv_app pkg activity
}

encryption() {
	pkgdesc="Nextcloud Encryption app"
	depends="$pkgname $_php-mcrypt"
	_mv_app pkg encryption
}

firstrunwizard() {
	pkgdesc="Nextcloud Firstrunwizard app"
	depends="$pkgname"
	_mv_app pkg firstrunwizard
}

gallery() {
	pkgdesc="Nextcloud Gallery app"
	depends="$pkgname"
	_mv_app pkg gallery
}

ldap() {
	pkgdesc="Nextcloud LDAP auth backend support"
	depends="$pkgname"
	_mv_app pkg user_ldap
}

logreader() {
	pkgdesc="Nextcloud Log Reader app"
	depends="$pkgname"
	_mv_app pkg logreader
}

notifications() {
	pkgdesc="Nextcloud Email notification support"
	depends="$pkgname"
	_mv_app pkg notifications
}

password_policy() {
        pkgdesc="Nextcloud Password Policy app"
	depends="$pkgname"
	_mv_app pkg password_policy
}

pdfviewer() {
        pkgdesc="Nextcloud integrated PDF viewer"
	depends="$pkgname"
	_mv_app pkg files_pdfviewer
}

texteditor() {
	pkgdesc="Nextcloud Text Editor app"
	depends="$pkgname"
	_mv_app pkg files_texteditor
}

videoplayer() {
	pkgdesc="Nextcloud Video Viewer app"
	depends="nextcloud"
	provides="$pkgname-videoviewer"
	_mv_app pkg files_videoplayer
}

sha512sums="0e409eedbcc0f4e1652085c3e384db373858b0cc116c70361a4d066a08afbd6e75792332f95d08773cbed78c1520532886268249d514f2da70acb3ba120420d5  nextcloud-12.0.0.zip
a12a73a38bc009d3307ce97bb32fc62ac93e125a77a3d36b31c9d2212953fa17bd5c31f819e0759a0645b1c285817b067143b0b9c3673ce4ab3043fae426a67c  nextcloud10-dont-chmod-config.patch
80b94b04507502fa80f3473e4ce8041c2e1f832da8a44408f2f1beda4319dddfc55c9e79d80e8e5a5bfecb770820109870f888d2a3eed9ab5981abcd89f0a812  nextcloud.logrotate
35cf156839215113b5d8fb8842b4c1e19a50be3c16be7048879fdd808674e4875dbacf3e2dd884fd182258595b7a137d7d3c2dc602a7ff5613c8b65fae0abe67  nextcloud.confd
b5cdccdffb35e868ec1acb15ec2849cc1c2a00f6064ad21eb591b9694e84df4576f03248f5e814000a48c38096a2a1588dfc79be66691415f2f4ef3b4105d032  fpm-pool.conf"