#!/usr/bin/with-contenv sh
set -ex

cd /var/lib/nextcloud
chmod +x ./occ

if [ ! -f /var/lib/nextcloud/data/.installed ]; then
    s6-setuidgid nginx ./occ maintenance:install \
        --database=pgsql \
        --database-host="$DB_HOST" \
        --database-name="$DB_NAME" \
        --database-user="$DB_USER" \
        --database-pass="$DB_PASSWORD" \
        --database-table-prefix="$DB_TABLE_PREFIX" \
        --admin-user="$ADMIN_USER" \
        --admin-pass="$ADMIN_PASSWORD" \
        --data-dir=/var/lib/nextcloud/data/ \
        --no-interaction

    touch /var/lib/nextcloud/data/.installed
fi

s6-setuidgid nginx ./occ config:app:set --value cron core backgroundjobs_mode
s6-setuidgid nginx ./occ app:enable files_sharing
s6-setuidgid nginx ./occ app:enable text
s6-setuidgid nginx ./occ app:enable files_pdfviewer
s6-setuidgid nginx ./occ app:enable files_videoplayer
s6-setuidgid nginx ./occ app:enable theming
s6-setuidgid nginx ./occ app:enable photos
s6-setuidgid nginx ./occ app:enable twofactor_totp
s6-setuidgid nginx ./occ app:enable twofactor_backupcodes
s6-setuidgid nginx ./occ app:enable twofactor_u2f
s6-setuidgid nginx ./occ app:enable polls
s6-setuidgid nginx ./occ app:enable calendar
s6-setuidgid nginx ./occ app:enable contacts
s6-setuidgid nginx ./occ app:enable news
s6-setuidgid nginx ./occ app:enable tasks
s6-setuidgid nginx ./occ app:enable notes
s6-setuidgid nginx ./occ app:enable mail
s6-setuidgid nginx ./occ app:enable sociallogin
s6-setuidgid nginx ./occ app:enable integration_mastodon
s6-setuidgid nginx ./occ app:enable integration_github
s6-setuidgid nginx ./occ app:enable integration_gitlab
s6-setuidgid nginx ./occ app:disable activity
s6-setuidgid nginx ./occ app:disable comments
s6-setuidgid nginx ./occ app:disable files_trashbin
s6-setuidgid nginx ./occ app:disable firstrunwizard
s6-setuidgid nginx ./occ app:disable logreader
s6-setuidgid nginx ./occ app:disable nextcloud_announcements
s6-setuidgid nginx ./occ app:disable password_policy
s6-setuidgid nginx ./occ app:disable serverinfo
s6-setuidgid nginx ./occ app:disable support
s6-setuidgid nginx ./occ app:disable survey_client
s6-setuidgid nginx ./occ app:disable systemtags
s6-setuidgid nginx ./occ app:disable updatenotification

s6-setuidgid nginx ./occ config:system:set --value '\OC\Memcache\APCu' memcache.local

s6-setuidgid nginx ./occ config:system:set --value "https://$DOMAIN" overwrite.cli.url
s6-setuidgid nginx ./occ config:system:set --value "localhost" trusted_domains 0
s6-setuidgid nginx ./occ config:system:set --value "$DOMAIN" trusted_domains 1
s6-setuidgid nginx ./occ config:system:set --value "syslog" log_type
s6-setuidgid nginx ./occ config:system:set --value "" logfile
s6-setuidgid nginx ./occ config:system:set --value "3" loglevel

s6-setuidgid nginx ./occ config:system:set --value "smtp" mail_smtpmode
s6-setuidgid nginx ./occ config:system:set --value "${MAIL_SMTP_AUTH_TYPE:-PLAIN}" mail_smtpauthtype
s6-setuidgid nginx ./occ config:system:set --value "$MAIL_FROM" mail_from_address
s6-setuidgid nginx ./occ config:system:set --value "$MAIL_DOMAIN" mail_domain
s6-setuidgid nginx ./occ config:system:set --value "${MAIL_SMTP_SECURITY:-tls}" mail_smtpsecure
s6-setuidgid nginx ./occ config:system:set --value "${MAIL_SMTP_AUTH:-1}" mail_smtpauth
s6-setuidgid nginx ./occ config:system:set --value "$MAIL_SMTP_HOST" mail_smtphost
s6-setuidgid nginx ./occ config:system:set --value "${MAIL_SMTP_PORT:-587}" mail_smtpport
s6-setuidgid nginx ./occ config:system:set --value "$MAIL_SMTP_NAME" mail_smtpname
s6-setuidgid nginx ./occ config:system:set --value "$MAIL_SMTP_PASSWORD" mail_smtppassword