При запуске discourse-setup с именем пользователя SMTP, содержащим /, скрипт завершается с ошибкой:
sed: -e выражение #1, символ 74: неизвестная опция для `s’
Изменение DISCOURSE_SMTP_USER_NAME не удалось.
Ожидаемое поведение
Имена пользователей SMTP, содержащие /, должны приниматься.
/ является допустимым символом для имени пользователя SMTP, согласно RFC3696:
Без кавычек локальная часть может состоять из любой комбинации
букв, цифр или любых специальных символов
! # $ % & ' * + - / = ? ^ _ ` . { | } ~
Путь к исправлению
Скрипт завершается с ошибкой из-за команды sed, которая по умолчанию использует / в качестве разделителя.
Поскольку двоеточие (:) не является допустимым символом для local-part адреса электронной почты, его можно использовать вместо /, без побочных эффектов, которые могли бы возникнуть при использовании других символов, таких как запятая или точка с запятой (за исключением того, что двоеточия в шаблонах sed необходимо экранировать — обратите внимание, что использование ] вместо этого устранило бы необходимость экранировать двоеточия):
строка 589: smtp_domain=$(echo $notification_email | sed -e "s/.*@//") следует заменить на smtp_domain=$(echo $notification_email | sed -e "s:.*@::")
строка 648: DISCOURSE_DEVELOPER_EMAILS использует , для разделения адресов электронной почты, поэтому также можно безопасно использовать :
строка 675 является источником моей ошибки: sed -i -e "s/^ #\?DISCOURSE_SMTP_USER_NAME:.*/ DISCOURSE_SMTP_USER_NAME: $smtp_user_name/w $changelog" $web_file можно заменить на sed -i -e "s:^ #\?DISCOURSE_SMTP_USER_NAME\:.*: DISCOURSE_SMTP_USER_NAME\: $smtp_user_name:w $changelog" $web_file или sed -i -e "s]^ #\?DISCOURSE_SMTP_USER_NAME:.*] DISCOURSE_SMTP_USER_NAME: $smtp_user_name]w $changelog" $web_file
аналогично для строки 684 (DISCOURSE_NOTIFICATION_EMAIL)
К сожалению, я потерял доступ к своему аккаунту на GitHub. Они просят меня ввести какой-то код, но я больше не использую привязанную почту, поэтому просто перестал пользоваться этой платформой, за исключением клонирования публичного кода.