#! /usr/bin/env bash # Options. DATADIR="/znc-data" # Build modules from source. if [ -d "${DATADIR}/modules" ]; then # Store current directory. cwd="$(pwd)" # Find module sources. modules=$(find "${DATADIR}/modules" -name "*.cpp") # Build modules. for module in $modules; do echo "Building module $module..." cd "$(dirname "$module")" znc-buildmod "$module" done # Go back to original directory. cd "$cwd" fi # Create default config if it doesn't exist if [ ! -f "${DATADIR}/configs/znc.conf" ]; then echo "Creating a default configuration..." mkdir -p "${DATADIR}/configs" cp /znc.conf.default "${DATADIR}/configs/znc.conf" fi # Make sure $DATADIR is owned by znc user. This effects ownership of the # mounted directory on the host machine too. echo "Setting necessary permissions..." chown -R znc:znc "$DATADIR" # Start ZNC. echo "Starting ZNC..." exec sudo -u znc znc --foreground --datadir="$DATADIR" $@