| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | #!/usr/bin/env bash# _modules/scripts/migrate_options.sh# THIS SCRIPT IS DESIGNED TO BE RUNNING BY MAILCOW SCRIPTS ONLY!# DO NOT, AGAIN, NOT TRY TO RUN THIS SCRIPT STANDALONE!!!!!!migrate_config_options() {  sed -i --follow-symlinks '$a\' mailcow.conf  KEYS=(    SOLR_HEAP    SKIP_SOLR    SOLR_PORT    FLATCURVE_EXPERIMENTAL    DISABLE_IPv6    ACME_CONTACT  )  for key in "${KEYS[@]}"; do    if grep -q "${key}" mailcow.conf; then      case "${key}" in        SOLR_HEAP)          echo "Removing ${key} in mailcow.conf"          sed -i '/# Solr heap size in MB\b/d' mailcow.conf          sed -i '/# Solr is a prone to run\b/d' mailcow.conf          sed -i '/SOLR_HEAP\b/d' mailcow.conf          ;;        SKIP_SOLR)          echo "Removing ${key} in mailcow.conf"          sed -i '/\bSkip Solr on low-memory\b/d' mailcow.conf          sed -i '/\bSolr is disabled by default\b/d' mailcow.conf          sed -i '/\bDisable Solr or\b/d' mailcow.conf          sed -i '/\bSKIP_SOLR\b/d' mailcow.conf          ;;        SOLR_PORT)          echo "Removing ${key} in mailcow.conf"          sed -i '/\bSOLR_PORT\b/d' mailcow.conf          ;;        FLATCURVE_EXPERIMENTAL)          echo "Removing ${key} in mailcow.conf"          sed -i '/\bFLATCURVE_EXPERIMENTAL\b/d' mailcow.conf          ;;        DISABLE_IPv6)          echo "Migrating ${key} to ENABLE_IPv6 in mailcow.conf"          local old=$(grep '^DISABLE_IPv6=' "mailcow.conf" | cut -d'=' -f2)          local new          if [[ "$old" == "y" ]]; then            new="false"          else            new="true"          fi          sed -i '/^DISABLE_IPv6=/d' "mailcow.conf"          echo "ENABLE_IPV6=$new" >> "mailcow.conf"          ;;        ACME_CONTACT)          echo "Deleting obsoleted ${key} in mailcow.conf"          sed -i '/^# Lets Encrypt registration contact information/d' mailcow.conf          sed -i '/^# Optional: Leave empty for none/d' mailcow.conf          sed -i '/^# This value is only used on first order!/d' mailcow.conf          sed -i '/^# Setting it at a later point will require the following steps:/d' mailcow.conf          sed -i '/^# https:\/\/docs.mailcow.email\/troubleshooting\/debug-reset_tls\//d' mailcow.conf          sed -i '/^ACME_CONTACT=.*/d' mailcow.conf          sed -i '/^#ACME_CONTACT=.*/d' mailcow.conf          ;;      esac    fi  done  solr_volume=$(docker volume ls -qf name=^${COMPOSE_PROJECT_NAME}_solr-vol-1)  if [[ -n $solr_volume ]]; then    echo -e "\e[34mSolr has been replaced within mailcow since 2025-01.\nThe volume $solr_volume is unused.\e[0m"    sleep 1    if [ ! "$FORCE" ]; then      read -r -p "Remove $solr_volume? [y/N] " response      if [[ "$response" =~ ^([yY][eE][sS]|[yY])+$ ]]; then        echo -e "\e[33mRemoving $solr_volume...\e[0m"        docker volume rm $solr_volume || echo -e "\e[31mFailed to remove. Remove it manually!\e[0m"        echo -e "\e[32mSuccessfully removed $solr_volume!\e[0m"      else        echo -e "Not removing $solr_volume. Run \`docker volume rm $solr_volume\` manually if needed."      fi    else      echo -e "\e[33mForce removing $solr_volume...\e[0m"      docker volume rm $solr_volume || echo -e "\e[31mFailed to remove. Remove it manually!\e[0m"      echo -e "\e[32mSuccessfully removed $solr_volume!\e[0m"    fi  fi  # Delete old fts.conf before forced switch to flatcurve to ensure update is working properly  FTS_CONF_PATH="${SCRIPT_DIR}/data/conf/dovecot/conf.d/fts.conf"  if [[ -f "$FTS_CONF_PATH" ]]; then    if grep -q "Autogenerated by mailcow" "$FTS_CONF_PATH"; then      rm -rf $FTS_CONF_PATH    fi  fi}
 |