#!/bin/bash
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
-if [[ -s /usr/local/lib/err ]]; then
- source /usr/local/lib/err
-else
- exit 1
-fi
+# Copyright 2024 Ian Kelling
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+set -e; . /usr/local/lib/bash-bear; set +e
pre="${0##*/}:"
tmp=$(rsync -ic $tmpdir/"$base" "$dest")
if [[ $tmp ]]; then
printf "%s\n" "$tmp"
+ # shellcheck disable=SC2034
ir=true
if [[ $dest == /etc/systemd/system/* ]]; then
touch /var/local/mail-setup-reload
m a2enmod proxy_fcgi
+cedit /etc/php/$phpver/fpm/php.ini <<'EOF'
+
+# fixes warning on /settings/admin/overview about 8 being too small.
+opcache.interned_strings_buffer=64
+
+# while I was googling for what to set the above to, I found a
+#recommendation to increase this from 128 to 512, and we set 512 somewhere
+# else in the config.
+opcache.memory_consumption=512
+EOF
+
+# https://docs.nextcloud.com/server/29/admin_manual/installation/source_installation.html
+sed -ri 's/;env\[(HOSTNAME|PATH|TMP|TMPDIR|TEMP)\]/env[\1]/' /etc/php/8.1/fpm/pool.d/www.conf
+
+# yes, it is a bit stupid to uncomment then change it
+sed -ri 's,^env\[PATH\] =.*,env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,' /etc/php/8.1/fpm/pool.d/www.conf
+
+/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
m web-conf - apache2 $domain <<EOF
### begin nextcloud settings
-nextcloud_admin_pass=casHiosidZyFraycs
+nextcloud_admin_pass=$(tail -n1 /p/c/nextcloud-admin-pass)
m cd /var/www
if [[ ! -e $ncdir/index.php ]]; then
i /usr/local/bin/ncup <<'EOFOUTER'
#!/bin/bash
-source /usr/local/lib/err
+set -e; . /usr/local/lib/bash-bear; set +e
m() { printf "%s\n" "$*"; "$@"; }
err-cleanup() {