#!/bin/bash

# see https://docs.nextcloud.com/server/latest/admin_manual/installation/php_configuration.html#required-php-modules

ckmodule()
{
	local mod=$1
	local pkg=

	for mod
	do
		printf "  %-12s: " $mod
		pkg=$(apt-cache search php${php_ver}-$mod)
		[ "X$pkg" = "X" ] && pkg=$(apt-cache search php-$mod)
		pkg=${pkg/ */}

		printf "%-20s" "$pkg"

		echo "$PhpModules" | grep -q "^$mod$" && {
			echo "ok"
			continue
		}
		echo "NOT_INSTALLED"
	done
	return 0
}

# (MAIN)

# mandatory
#
required="
	ctype
	curl
	DOM
	fileinfo
	GD
	xml
	mbstring
	OpenSSL
	posix
	session
	zip
	zlib
"

# optionals
#
optionals="
	intl
	sodium
	sysvsem
"

if [ $# != 0 ]
then
	php_ver=$1
	shift
else
	php_ver=$(kusa-conf php.version 2>/dev/null) || {
		php_ver=$(ls /etc/php | tail -1)
	}
fi

echo "
	CHECKING EXTENSION FOR PHP VERSION: $php_ver
"

PhpModules=$(php -m | fgrep -v ' ' \
	| sed -e 's/\[.*//' -e 's/^\s*$//' -e '/^$/d' \
	| tr '[A-Z]' '[a-z]' | sort -u)


ckmodule $required
ckmodule $optional

# our choiche, mysql
#
ckmodule pdo_mysql

