Răsfoiți Sursa

Add build flag for webpush

binwiederhier 6 luni în urmă
părinte
comite
00409d834b

+ 2 - 0
cmd/serve.go

@@ -333,6 +333,8 @@ func execServe(c *cli.Context) error {
 		if messageSizeLimit > 5*1024*1024 {
 			return errors.New("message-size-limit cannot be higher than 5M")
 		}
+	} else if !server.WebPushAvailable && (webPushPrivateKey != "" || webPushPublicKey != "" || webPushFile != "") {
+		return errors.New("cannot enable WebPush, support is not available in this build (nowebpush)")
 	} else if webPushExpiryWarningDuration > 0 && webPushExpiryWarningDuration > webPushExpiryDuration {
 		return errors.New("web push expiry warning duration cannot be higher than web push expiry duration")
 	} else if behindProxy && proxyForwardedHeader == "" {

+ 4 - 0
server/server_webpush.go

@@ -15,6 +15,10 @@ import (
 )
 
 const (
+	// WebPushAvailable is a constant used to indicate that WebPush support is available.
+	// It can be disabled with the 'nowebpush' build tag.
+	WebPushAvailable = true
+
 	webPushTopicSubscribeLimit = 50
 )
 

+ 6 - 0
server/server_webpush_dummy.go

@@ -6,6 +6,12 @@ import (
 	"net/http"
 )
 
+const (
+	// WebPushAvailable is a constant used to indicate that WebPush support is available.
+	// It can be disabled with the 'nowebpush' build tag.
+	WebPushAvailable = false
+)
+
 func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error {
 	return errHTTPNotFound
 }

+ 2 - 0
server/server_webpush_test.go

@@ -1,3 +1,5 @@
+//go:build !nowebpush
+
 package server
 
 import (