diff --git a/build.sh b/build.sh index 97f5bfa..d9b67f2 100755 --- a/build.sh +++ b/build.sh @@ -105,7 +105,28 @@ echo "✓ nextcloud-calendar built successfully" # Build nextcloud-mail echo "Building nextcloud-mail..." cd "$SCRIPT_DIR/tools/go/nextcloud-mail" -go build -ldflags="-X main.BuildIMAPServer=$IMAP_SERVER -X main.BuildIMAPPort=$IMAP_PORT -X main.BuildIMAPUser=$IMAP_USER -X main.BuildIMAPPassword=$IMAP_PASS -X main.BuildSMTPServer=$SMTP_SERVER -X main.BuildSMTPPort=$SMTP_PORT -X main.BuildSMTPUser=$SMTP_USER -X main.BuildSMTPPassword=$SMTP_PASS -X main.BuildUseSSL=$USE_SSL -X main.BuildIgnoreCerts=$IGNORE_CERTS" -o ~/bin/nextcloud-mail . + +# Build ldflags - escape special characters in values +escape_ldflag() { + local value="$1" + # Escape backslashes, double quotes, and spaces + value="${value//\\/\\\\}" + value="${value//\"/\\\"}" + echo "$value" +} + +LDFLAGS="-X main.BuildIMAPServer=\"$(escape_ldflag "$IMAP_SERVER")\"" +LDFLAGS="$LDFLAGS -X main.BuildIMAPPort=\"$(escape_ldflag "$IMAP_PORT")\"" +LDFLAGS="$LDFLAGS -X main.BuildIMAPUser=\"$(escape_ldflag "$IMAP_USER")\"" +LDFLAGS="$LDFLAGS -X main.BuildIMAPPassword=\"$(escape_ldflag "$IMAP_PASS")\"" +LDFLAGS="$LDFLAGS -X main.BuildSMTPServer=\"$(escape_ldflag "$SMTP_SERVER")\"" +LDFLAGS="$LDFLAGS -X main.BuildSMTPPort=\"$(escape_ldflag "$SMTP_PORT")\"" +LDFLAGS="$LDFLAGS -X main.BuildSMTPUser=\"$(escape_ldflag "$SMTP_USER")\"" +LDFLAGS="$LDFLAGS -X main.BuildSMTPPassword=\"$(escape_ldflag "$SMTP_PASS")\"" +LDFLAGS="$LDFLAGS -X main.BuildUseSSL=\"$(escape_ldflag "$USE_SSL")\"" +LDFLAGS="$LDFLAGS -X main.BuildIgnoreCerts=\"$(escape_ldflag "$IGNORE_CERTS")\"" + +go build -ldflags="$LDFLAGS" -o ~/bin/nextcloud-mail . echo "✓ nextcloud-mail built successfully" echo ""