# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=nextcloud
pkgver=10.0.2
pkgrel=0
pkgdesc="A safe home for all your data"
url="http://nextcloud.com"
arch="noarch"
license="AGPL"
_php=php5
depends="$_php ${_php}-ctype ${_php}-curl ${_php}-dom ${_php}-gd ${_php}-iconv
	${_php}-json ${_php}-openssl ${_php}-xml ${_php}-xmlreader
	${_php}-zlib ${_php}-zip
	"
depends_dev=
makedepends="$depends_dev"
install=
subpackages="$pkgname-doc $pkgname-activity $pkgname-firstrunwizard $pkgname-gallery
	$pkgname-mysql $pkgname-notifications $pkgname-pdfviewer $pkgname-pgsql
	$pkgname-sqlite $pkgname-templateeditor $pkgname-texteditor
	$pkgname-videoplayer"

source="https://download.nextcloud.com/server/releases/$pkgname-$pkgver.zip
	nextcloud10-dont-chmod-config.patch
	"
pkggroups="www-data"

#_builddir="$srcdir"/core-$pkgver
_builddir="$srcdir"/$pkgname

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


prepare() {
	cd "$_builddir"
        for i in $source; do
                case $i in
                *.patch) msg "Applying patch $i"; patch -p1 -i "$srcdir"/$i || return 1;;
                esac
        done
}

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

package() {
	cd "$_builddir"
	for dir in ${_ncconfdir} ${_ncdatadir} ${_ncwwwdir}; do
		mkdir -p "$pkgdir"$dir || return 1
	done
	rm -rf config data
	mv * "$pkgdir"${_ncwwwdir} || return 1
	chmod +x "$pkgdir"${_ncwwwdir}/occ || return 1
	ln -s $_ncconfdir "$pkgdir"${_ncwwwdir}/config || return 1
	install -m664 .htaccess "$pkgdir"${_ncwwwdir}/.htaccess || return 1
	install -m664 .user.ini "$pkgdir"${_ncwwwdir}/.user.ini || return 1
	install -m664 ../../${pkgname}-config.php "$pkgdir"/etc/$pkgname/config.php || return 1
	mv "$pkgdir"$_ncwwwdir/apps "$pkgdir"$_ncbasedir || return 1
	ln -s $_ncappsdir "$pkgdir"$_ncwwwdir/apps || return 1
	for dir in ${_ncconfdir} ${_ncdatadir} ${_ncappsdir}; do
		chown -R :www-data "$pkgdir"$dir || return 1
		chmod -R 770 "$pkgdir"$dir || return 1
	done
}

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

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

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

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

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

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

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

gallery() {
	pkgdesc="Nextcloud integrated gallery application"
	depends="nextcloud"
	_mv_app pkg gallery
}

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


templateeditor() {
        pkgdesc="Nextcloud Email template editor app"
	depends="$pkgname"
	_mv_app pkg templateeditor
}

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

texteditor() {
	pkgdesc="Nextcloud integrated text editor"
	depends="nextcloud"
	_mv_app pkg files_texteditor
}

videoplayer() {
	pkgdesc="Nextcloud integrated video viewer"
	depends="nextcloud"
	provides="$pkgname-videoviewer"
	_mv_app pkg files_videoplayer
}

md5sums="6cad2973e9b3f6d1f1c2c89153aceeb7  nextcloud-10.0.2.zip
f8f2fd9a51c983930d02fb9f90cceda7  nextcloud10-dont-chmod-config.patch"
sha256sums="85f3c050788b475d91de05ecb213a14c0cefd00a1f965435dc20c22781d32c6e  nextcloud-10.0.2.zip
8a66e0388e0e2d829301a4499b3be6017efc0a3cc8734a5d7e4b0e9cfd803e0c  nextcloud10-dont-chmod-config.patch"
sha512sums="42a6732095fcbdf161490253e97f37f71a323782aac34497931372755b90442016dda116b8e70a8667da40aabc8dc5f3da00ff3bc572b0003fd001f3dd43adec  nextcloud-10.0.2.zip
a12a73a38bc009d3307ce97bb32fc62ac93e125a77a3d36b31c9d2212953fa17bd5c31f819e0759a0645b1c285817b067143b0b9c3673ce4ab3043fae426a67c  nextcloud10-dont-chmod-config.patch"
