#!/bin/bash # Copyright © 2012-2026 ScriptFanix # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # A copy of the GNU General Public License v3 is includded in the LICENSE file # at the root of the project. printConfig() { { # Build a pipe-delimited table # 'column -t -s|' will transform into columns echo "General|Config file|$cffile" [ -n "$ionice" ] && echo "|IO Nice|$ionice" cat <<-EOF |Load|$maxload |Load Interval|$loadinterval |Temp Dir|$tempdir |Database|$database |Debug|$debug Source|Path|$sourcepath EOF # Print skipped directories # use a continuation prefix after the first for prune_expression in "${skippeddirectories[@]}" do (( printed )) \ && echo -n ' | |' \ || echo -n ' |Skipped directories|' echo "$prune_expression" printed=1 done unset printed # Loop over destinations and print their settings # use the destination name as a key into the associative arrays for destination in ${destinations[@]} do cat <<-EOF $destination|Path|${destinationpath["$destination"]} |Enabled|${destinationenabled["$destination"]} |Format|${destinationformat["$destination"]} |Quality|${destinationquality["$destination"]} EOF # Show format-specific fields if [[ ${destinationformat["$destination"]} == opus ]] then echo " |Expected loss|${destinationloss["$destination"]}" elif [[ ${destinationformat["$destination"]} == mp3 ]] then echo " |Prevent resampling|${destinationnoresample["$destination"]}" fi cat <<-EOF |Normalize|${destinationnormalize["$destination"]} |Channels|${destinationchannels["$destination"]} |Frequency|${destinationfrequency["$destination"]} |Higher than|${destinationmaxbps["$destination"]} |Fat32 Compat.|${destinationfat32compat["$destination"]} |ASCII Compat.|${destinationascii["$destination"]} |Path Change|${destinationrenamepath["$destination"]} |File Rename|${destinationrename["$destination"]} EOF # Display pipe-separated mime lists: one entry per row [ -n "${destinationskipmime["$destination"]}" ] \ && echo " |Skipped mime-types|${destinationskipmime["$destination"]//\|/ | |}" [ -n "${destinationcopymime["$destination"]}" ] \ && echo " |Copied mime-types|${destinationcopymime["$destination"]//\|/ | |}" [ -n "${destinationcopyext["$destination"]}" ] \ && echo " |Copied extensions|${destinationcopyext["$destination"]//\|/ | |}" done }|column -t -s'|' # Format as aligned columns using '|' as delimiter }