+# include helper functions
+if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
+ . "/usr/share/koha/bin/koha-functions.sh"
+else
+ echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
+ exit 1
+fi
+
+show_instances()
+{
+ local show=$1
+ local show_email=$2
+ local show_sip=$3
+
+ for instance in $( get_instances ); do
+ case $show in
+ "all")
+ if instance_filter_email $instance $show_email && \
+ instance_filter_letsencrypt $instance $show_letsencrypt && \
+ instance_filter_plack $instance $show_plack && \
+ instance_filter_sip $instance $show_sip; then
+ echo $instance
+ fi ;;
+ "enabled")
+ if is_enabled $instance; then
+ if instance_filter_email $instance $show_email && \
+ instance_filter_letsencrypt $instance $show_letsencrypt && \
+ instance_filter_plack $instance $show_plack && \
+ instance_filter_sip $instance $show_sip; then
+ echo $instance
+ fi
+ fi ;;
+ "disabled")
+ if ! is_enabled $instance; then
+ if instance_filter_email $instance $show_email && \
+ instance_filter_letsencrypt $instance $show_letsencrypt && \
+ instance_filter_plack $instance $show_plack && \
+ instance_filter_sip $instance $show_sip; then
+ echo $instance
+ fi
+ fi ;;
+ esac
+ done
+}
+
+
+instance_filter_sip()
+{
+ local instancename=$1
+ local show_sip=$2;
+
+ case $show_sip in
+ "all")
+ return 0 ;;
+ "enabled")
+ if is_sip_enabled $instancename; then
+ return 0
+ fi ;;
+ "disabled")
+ if ! is_sip_enabled $instancename; then
+ return 0
+ fi ;;
+ esac
+
+ # Didn't match any criteria
+ return 1
+}
+
+instance_filter_plack()
+{
+ local instancename=$1
+ local show_plack=$2;
+
+ case $show_plack in
+ "all")
+ return 0 ;;
+ "enabled")
+ if is_plack_enabled $instancename; then
+ return 0
+ fi ;;
+ "disabled")
+ if ! is_plack_enabled $instancename; then
+ return 0
+ fi ;;
+ esac
+
+ # Didn't match any criteria
+ return 1
+}
+
+instance_filter_letsencrypt()
+{
+ local instancename=$1
+ local show_letsencrypt=$2;
+
+ case $show_letsencrypt in
+ "all")
+ return 0 ;;
+ "enabled")
+ if is_letsencrypt_enabled $instancename; then
+ return 0
+ fi ;;
+ "disabled")
+ if ! is_letsencrypt_enabled $instancename; then
+ return 0
+ fi ;;
+ esac
+
+ # Didn't match any criteria
+ return 1
+}
+
+instance_filter_email()
+{
+ local instancename=$1
+ local show_email=$2;
+
+ case $show_email in
+ "all")
+ return 0 ;;
+ "enabled")
+ if is_email_enabled $instancename; then
+ return 0
+ fi ;;
+ "disabled")
+ if ! is_email_enabled $instancename; then
+ return 0
+ fi ;;
+ esac
+
+ # Didn't match any criteria
+ return 1
+}
+
+set_show()
+{
+ local show_param=$1
+
+ if [ "$show" = "all" ]; then
+ show=$show_param