aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAKP <tom@tdpain.net>2022-04-05 20:50:54 +0100
committerAKP <tom@tdpain.net>2022-04-05 20:50:54 +0100
commit8781854b620b1fb63dc649661d5c9d4ad3e00124 (patch)
tree14b761d1afcf170517b898e7e1d928fa3b5a48d9
parent7be8dbcde9ec14e16f88dd807ff9b9b802c83b28 (diff)
Prepare for deploy
Signed-off-by: AKP <tom@tdpain.net>
-rw-r--r--Dockerfile13
-rw-r--r--Makefile4
-rw-r--r--walrss/internal/http/http.go2
-rw-r--r--walrss/internal/http/testEmail.go30
-rw-r--r--walrss/internal/http/views/main.qtpl.html2
-rw-r--r--walrss/internal/http/views/main.qtpl.html.go4
-rw-r--r--walrss/internal/http/views/page.qtpl.html4
-rw-r--r--walrss/internal/http/views/page.qtpl.html.go15
-rw-r--r--walrss/internal/urls/urls.go2
9 files changed, 59 insertions, 17 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..2072089
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,13 @@
+FROM golang:1-alpine as builder
+
+RUN mkdir /build
+ADD . /build/
+WORKDIR /build
+RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-extldflags "-static" -s -w' -o main github.com/codemicro/walrss/walrss
+
+FROM alpine
+COPY --from=builder /build/main /
+WORKDIR /run
+
+ENV WALRSS_DIR /run
+CMD ["../main"] \ No newline at end of file
diff --git a/Makefile b/Makefile
index 948bf1e..fad7acf 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
.PHONY: prebuild fmt
-build: templates writeVersionNumber
+build: templates
mkdir -p bin
go build -o bin/walrss github.com/codemicro/walrss/walrss
@@ -12,4 +12,4 @@ fmt:
go fmt github.com/codemicro/walrss/...
templates:
- qtc -skipLineComments -ext qtpl.html -dir walrss/internal/http/views \ No newline at end of file
+ qtc -skipLineComments -ext qtpl.html -dir walrss/internal/http/views
diff --git a/walrss/internal/http/http.go b/walrss/internal/http/http.go
index 67be3c2..72a8634 100644
--- a/walrss/internal/http/http.go
+++ b/walrss/internal/http/http.go
@@ -89,6 +89,8 @@ func (s *Server) registerHandlers() {
s.app.Get(urls.NewFeedItem, s.newFeedItem)
s.app.Post(urls.NewFeedItem, s.newFeedItem)
+ s.app.Post(urls.SendTestEmail, s.sendTestEmail)
+
s.app.Use(urls.Statics, static.NewHandler())
}
diff --git a/walrss/internal/http/testEmail.go b/walrss/internal/http/testEmail.go
new file mode 100644
index 0000000..1aab514
--- /dev/null
+++ b/walrss/internal/http/testEmail.go
@@ -0,0 +1,30 @@
+package http
+
+import (
+ "github.com/codemicro/walrss/walrss/internal/core"
+ "github.com/codemicro/walrss/walrss/internal/rss"
+ "github.com/codemicro/walrss/walrss/internal/urls"
+ "github.com/gofiber/fiber/v2"
+ "github.com/rs/zerolog/log"
+)
+
+func (s *Server) sendTestEmail(ctx *fiber.Ctx) error {
+ currentUserID := getCurrentUserID(ctx)
+ if currentUserID == "" {
+ return requestFragmentSignIn(ctx, urls.Index)
+ }
+
+ user, err := core.GetUserByID(s.state, currentUserID)
+ if err != nil {
+ return err
+ }
+
+ go func() {
+ if err := rss.ProcessUserFeed(s.state, user); err != nil {
+ log.Error().Err(err).Str("location", "test email").Str("user", user.ID).Send()
+ }
+ }()
+
+ fragmentEmitSuccess(ctx)
+ return nil
+}
diff --git a/walrss/internal/http/views/main.qtpl.html b/walrss/internal/http/views/main.qtpl.html
index c9ab30f..47e1d54 100644
--- a/walrss/internal/http/views/main.qtpl.html
+++ b/walrss/internal/http/views/main.qtpl.html
@@ -282,7 +282,7 @@
</div>
</form>
- <button hx-post="{%s= urls.TestEmail %}">Send test email</button>
+ <button class="mt-2 btn btn-primary btn-sm" hx-post="{%s= urls.SendTestEmail %}" hx-swap="none">Send test email</button>
</div>
</div>
diff --git a/walrss/internal/http/views/main.qtpl.html.go b/walrss/internal/http/views/main.qtpl.html.go
index 83ddd03..9ff4393 100644
--- a/walrss/internal/http/views/main.qtpl.html.go
+++ b/walrss/internal/http/views/main.qtpl.html.go
@@ -497,6 +497,10 @@ func (p *MainPage) StreamRenderScheduleCard(qw422016 *qt422016.Writer) {
</div>
</form>
+ <button class="mt-2 btn btn-primary btn-sm" hx-post="`)
+ qw422016.N().S(urls.SendTestEmail)
+ qw422016.N().S(`" hx-swap="none">Send test email</button>
+
</div>
</div>
`)
diff --git a/walrss/internal/http/views/page.qtpl.html b/walrss/internal/http/views/page.qtpl.html
index 2f35937..dd993f2 100644
--- a/walrss/internal/http/views/page.qtpl.html
+++ b/walrss/internal/http/views/page.qtpl.html
@@ -1,5 +1,3 @@
-{% import "github.com/codemicro/walrss/walrss/internal/urls" %}
-
{% interface
Page {
Title()
@@ -71,7 +69,7 @@ Page prints a page implementing Page interface.
PolyPage is used to create a basic page dynamically using Daz.
{% code
type PolyPage struct {
- BasePageuuu
+ BasePage
TitleString string
BodyContent string
ExtraHeadContent string
diff --git a/walrss/internal/http/views/page.qtpl.html.go b/walrss/internal/http/views/page.qtpl.html.go
index 926ee88..2c9a6ca 100644
--- a/walrss/internal/http/views/page.qtpl.html.go
+++ b/walrss/internal/http/views/page.qtpl.html.go
@@ -3,8 +3,6 @@
package views
-import "github.com/codemicro/walrss/walrss/internal/urls"
-
import (
qtio422016 "io"
@@ -39,16 +37,11 @@ func StreamRenderPage(qw422016 *qt422016.Writer, p Page) {
qw422016.N().S(makePageTitle(p))
qw422016.N().S(`</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <script src="`)
- qw422016.N().S(urls.Statics)
- qw422016.N().S(`/htmx.min.js"></script>
- <link href="`)
- qw422016.N().S(urls.Statics)
- qw422016.N().S(`/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
+ <script src="https://unpkg.com/htmx.org@1.7.0"></script>
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css">
- <script src="`)
- qw422016.N().S(urls.Statics)
- qw422016.N().S(`/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
+
<style>
[disabled] {
cursor: not-allowed;
diff --git a/walrss/internal/urls/urls.go b/walrss/internal/urls/urls.go
index 87fb45c..2edcc2e 100644
--- a/walrss/internal/urls/urls.go
+++ b/walrss/internal/urls/urls.go
@@ -21,6 +21,8 @@ const (
New = "/new"
NewFeedItem = New + "/feed"
+ SendTestEmail = "/send/test"
+
Statics = "/statics"
)