Simplify build.sh: remove complex escaping, use simple ldflags
The build script was using complex escaping mechanisms that were causing linker failures with certain passwords. Simplified to use the same approach as other Nextcloud tools: - No temp files - No escaping functions - Direct variable substitution in ldflags This matches the pattern used for nextcloud-client, nextcloud-contacts, and nextcloud-calendar. Known limitation: Passwords containing spaces, double quotes, or $ characters may fail to build. Users with such passwords should use a simpler password or manually modify the build command.
This commit is contained in:
1 parent
154a93a148
commit
6a90e5f0e5
1 file changed
+4
-21
@@ -106,27 +106,10 @@ echo "✓ nextcloud-calendar built successfully"
|
|||||||
echo "Building nextcloud-mail..."
|
echo "Building nextcloud-mail..."
|
||||||
cd "$SCRIPT_DIR/tools/go/nextcloud-mail"
|
cd "$SCRIPT_DIR/tools/go/nextcloud-mail"
|
||||||
|
|
||||||
# Build ldflags - escape special characters in values
|
# Build with compile-time credentials
|
||||||
escape_ldflag() {
|
# Note: This simple approach works for most passwords but may fail with
|
||||||
local value="$1"
|
# passwords containing spaces, double quotes, or $ characters
|
||||||
# Escape backslashes, double quotes, and spaces
|
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 .
|
||||||
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 "✓ nextcloud-mail built successfully"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in new issue
Block a user