69 lines
2.7 KiB
Bash
69 lines
2.7 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
. ../.skel/nextcloud-app/build-nextcloud-app
|
||
|
|
||
|
function pre_fetch() {
|
||
|
# Filter from .skel/build-nextcloud-app, but with restriction to stable versions removed
|
||
|
export _NCAPPS_JQ='.[] | select(.id == $app) | .releases[] | "\(.version) \(.download) \(.rawPlatformVersionSpec)"'
|
||
|
}
|
||
|
|
||
|
function _prepare() {
|
||
|
mkdir -p \
|
||
|
"${PKGDIR}/DEBIAN" \
|
||
|
"${PKGDIR}/usr/share/doc/${PKGNAME}" \
|
||
|
"${PKGDIR}/usr/lib/nextcloud/nextcloud-apps"
|
||
|
VERSION=$(cat "${SRCDIR}/${APP}/appinfo/info.xml" | xq-python -r .info.version | sed -re 's/-/~/g')
|
||
|
SUMMARY=$(cat "${SRCDIR}/${APP}/appinfo/info.xml" | xq-python -r '.info.summary | if type == "array" then (.[] | select(.["@lang"]=="en") | .["#text"]) else (.) end')
|
||
|
DESCRIPTION=$(cat "${SRCDIR}/${APP}/appinfo/info.xml" | xq-python -r '.info.description | if type == "array" then (.[] | select(.["@lang"]=="en") | .["#text"]) else (.) end')
|
||
|
PHP_MIN=$(cat "${SRCDIR}/${APP}/appinfo/info.xml" | xq-python -r '.info.dependencies.php."@min-version"')
|
||
|
PHP_MAX=$(cat "${SRCDIR}/${APP}/appinfo/info.xml" | xq-python -r '.info.dependencies.php."@max-version"')
|
||
|
PHP_DEP=""
|
||
|
# #f [[ "${PHP_MIN}" != "null" ]]; then
|
||
|
# PHP_DEP="${PHP_DEP}, php (>= ${PHP_MIN})"
|
||
|
# fi
|
||
|
# if [[ "${PHP_MAX}" != "null" ]]; then
|
||
|
# # awk increments the last version component, from https://stackoverflow.com/a/69489163
|
||
|
# PHP_MAX=$(echo "${PHP_MAX}" | awk -F. -v OFS=. '{$NF=$NF+1;print}')
|
||
|
# PHP_DEP="${PHP_DEP}, php (<< ${PHP_MAX})"
|
||
|
# fi
|
||
|
cp -r "${SRCDIR}/${APP}" "${PKGDIR}/usr/lib/nextcloud/nextcloud-apps/${APP}"
|
||
|
cat > "${PKGDIR}/DEBIAN/control" <<EOF
|
||
|
Package: ${PKGNAME}
|
||
|
Version: ${VERSION}
|
||
|
Maintainer: ${MAINTAINER}
|
||
|
Section: web
|
||
|
Priority: optional
|
||
|
Architecture: ${ARCH}
|
||
|
Depends: nextcloud-${NCMAJOR}${PHP_DEP}${ADDITIONAL_DEPS}
|
||
|
Provides: nextcloud-app-${APP//_/-}
|
||
|
Conflicts: nextcloud-app-${APP//_/-}
|
||
|
Description: ${SUMMARY}
|
||
|
$(echo ${DESCRIPTION} | fold --width=71 --spaces | sed -re 's/^([^ ])/ \1/g')
|
||
|
EOF
|
||
|
cat > "${PKGDIR}/DEBIAN/postinst" <<EOF
|
||
|
#!/bin/bash
|
||
|
set -exo pipefail
|
||
|
|
||
|
if [[ "\$1" == "configure" ]]; then
|
||
|
|
||
|
$(declare -f postinst_configure_pre | sed -e '1,2d' -e '$d')
|
||
|
|
||
|
# Only run migrations if nextcloud is installed and the app is enabled
|
||
|
if [[ -z "\$(grep installed /var/lib/nextcloud/webroot/config/config.php | grep false)" && \\
|
||
|
-n \$(sudo -u www-data php /var/lib/nextcloud/webroot/occ app:list | grep -B 10000 '^Disabled:' | grep -- "- ${APP}:") ]]; then
|
||
|
sudo -u www-data php /var/lib/nextcloud/webroot/occ upgrade
|
||
|
sudo -u www-data php /var/lib/nextcloud/webroot/occ maintenance:mode --off
|
||
|
fi
|
||
|
|
||
|
$(declare -f postinst_configure_post | sed -e '1,2d' -e '$d')
|
||
|
|
||
|
fi
|
||
|
EOF
|
||
|
}
|
||
|
|
||
|
post_prepare() {
|
||
|
github_changelog nextcloud/news
|
||
|
}
|
||
|
|
||
|
build_nextcloud_app news 29
|