From 52166f6602b4380cec6e6fd1d19f38b596781f91 Mon Sep 17 00:00:00 2001 From: Maxim Lebedev Date: Fri, 10 Jun 2022 04:12:21 +0500 Subject: [PATCH] :technologist: Added revision info in templates footer --- Makefile | 4 +- catalog_gen.go | 49 ++--- locales/en/out.gotext.json | 7 + locales/ru/messages.gotext.json | 5 + locales/ru/out.gotext.json | 5 + web/baseof.qtpl | 29 +++ web/baseof.qtpl.go | 315 ++++++++++++++++++-------------- 7 files changed, 252 insertions(+), 162 deletions(-) diff --git a/Makefile b/Makefile index e9e363a..63284fa 100644 --- a/Makefile +++ b/Makefile @@ -6,14 +6,14 @@ SHELL = /bin/sh srcdir = . GO ?= go -GOFLAGS ?= +GOFLAGS ?= -buildvcs=true EXECUTABLE ?= indieauth #### End of system configuration section. #### .PHONY: all clean check help -all: main.go +all: $(GO) build -v $(GOFLAGS) -o $(EXECUTABLE) $< clean: ## Delete all files in the current directory that are normally created by building the program diff --git a/catalog_gen.go b/catalog_gen.go index 8509baf..6938dcd 100644 --- a/catalog_gen.go +++ b/catalog_gen.go @@ -44,37 +44,38 @@ var messageKeyToIndex = map[string]int{ "Authorize application": 1, "Choose your scopes": 2, "Deny": 3, - "Error": 5, - "How do I fix it?": 6, - "Recipient": 9, - "Resource": 10, - "Send": 11, - "Sign In": 7, - "TicketAuth": 8, + "Error": 6, + "How do I fix it?": 7, + "Recipient": 10, + "Resource": 11, + "Send": 12, + "Sign In": 8, + "TicketAuth": 9, + "version": 5, } -var enIndex = []uint32{ // 13 elements +var enIndex = []uint32{ // 14 elements 0x00000000, 0x00000010, 0x00000026, 0x00000039, - 0x0000003e, 0x00000044, 0x0000004a, 0x0000005b, - 0x00000063, 0x0000006e, 0x00000078, 0x00000081, - 0x00000086, -} // Size: 76 bytes + 0x0000003e, 0x00000044, 0x0000004c, 0x00000052, + 0x00000063, 0x0000006b, 0x00000076, 0x00000080, + 0x00000089, 0x0000008e, +} // Size: 80 bytes -const enData string = "" + // Size: 134 bytes +const enData string = "" + // Size: 142 bytes "\x02Authorize %[1]s\x02Authorize application\x02Choose your scopes\x02De" + - "ny\x02Allow\x02Error\x02How do I fix it?\x02Sign In\x02TicketAuth\x02Rec" + - "ipient\x02Resource\x02Send" + "ny\x02Allow\x02version\x02Error\x02How do I fix it?\x02Sign In\x02Ticket" + + "Auth\x02Recipient\x02Resource\x02Send" -var ruIndex = []uint32{ // 13 elements +var ruIndex = []uint32{ // 14 elements 0x00000000, 0x0000001f, 0x0000004d, 0x0000008e, - 0x0000009f, 0x000000b2, 0x000000bf, 0x000000e1, - 0x000000ec, 0x000000f7, 0x0000010c, 0x00000119, - 0x0000012c, -} // Size: 76 bytes + 0x0000009f, 0x000000b2, 0x000000bf, 0x000000cc, + 0x000000ee, 0x000000f9, 0x00000104, 0x00000119, + 0x00000126, 0x00000139, +} // Size: 80 bytes -const ruData string = "" + // Size: 300 bytes +const ruData string = "" + // Size: 313 bytes "\x02Авторизовать %[1]s\x02Авторизовать приложение\x02Выбери предоставляе" + - "мые разрешения\x02Отказать\x02Разрешить\x02Ошибка\x02Как исправить это?" + - "\x02Войти\x02TicketAuth\x02Получатель\x02Ресурс\x02Отправить" + "мые разрешения\x02Отказать\x02Разрешить\x02версия\x02Ошибка\x02Как испр" + + "авить это?\x02Войти\x02TicketAuth\x02Получатель\x02Ресурс\x02Отправить" - // Total table size 586 bytes (0KiB); checksum: D0ACA2B7 + // Total table size 615 bytes (0KiB); checksum: 66FB60EC diff --git a/locales/en/out.gotext.json b/locales/en/out.gotext.json index 19616d5..98f834c 100644 --- a/locales/en/out.gotext.json +++ b/locales/en/out.gotext.json @@ -46,6 +46,13 @@ "translatorComment": "The name of the button to continue the application authorization process", "fuzzy": true }, + { + "id": "version", + "message": "version", + "translation": "version", + "translatorComment": "Copied from source.", + "fuzzy": true + }, { "id": "Error", "message": "Error", diff --git a/locales/ru/messages.gotext.json b/locales/ru/messages.gotext.json index b98c94f..804ab12 100644 --- a/locales/ru/messages.gotext.json +++ b/locales/ru/messages.gotext.json @@ -40,6 +40,11 @@ "translation": "Разрешить", "translatorComment": "Название кнопки продолжения процесса авторизациии приложения" }, + { + "id": "version", + "message": "version", + "translation": "версия" + }, { "id": "Error", "message": "Error", diff --git a/locales/ru/out.gotext.json b/locales/ru/out.gotext.json index b98c94f..804ab12 100644 --- a/locales/ru/out.gotext.json +++ b/locales/ru/out.gotext.json @@ -40,6 +40,11 @@ "translation": "Разрешить", "translatorComment": "Название кнопки продолжения процесса авторизациии приложения" }, + { + "id": "version", + "message": "version", + "translation": "версия" + }, { "id": "Error", "message": "Error", diff --git a/web/baseof.qtpl b/web/baseof.qtpl index 0e026c9..5578363 100644 --- a/web/baseof.qtpl +++ b/web/baseof.qtpl @@ -1,4 +1,6 @@ {% import ( + "runtime/debug" + "golang.org/x/text/language" "golang.org/x/text/message" @@ -75,6 +77,33 @@ {%= p.Body() %} + + {% code + var path, vcsRevision string + + if bi, ok := debug.ReadBuildInfo(); ok { + path = bi.Path + + for i := range bi.Settings { + if bi.Settings[i].Key != "vcs.revision" { + continue + } + + vcsRevision = bi.Settings[i].Value + } + } + %} + + {% if vcsRevision != "" %} + + {% endif %} {% endfunc %} diff --git a/web/baseof.qtpl.go b/web/baseof.qtpl.go index 737bac5..4b22224 100644 --- a/web/baseof.qtpl.go +++ b/web/baseof.qtpl.go @@ -6,309 +6,352 @@ package web //line web/baseof.qtpl:1 import ( + "runtime/debug" + "golang.org/x/text/language" "golang.org/x/text/message" "source.toby3d.me/toby3d/auth/internal/domain" ) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 type Page interface { -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 Body() string -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 StreamBody(qw422016 *qt422016.Writer) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 WriteBody(qq422016 qtio422016.Writer) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 Head() string -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 StreamHead(qw422016 *qt422016.Writer) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 WriteHead(qq422016 qtio422016.Writer) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 Lang() string -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 StreamLang(qw422016 *qt422016.Writer) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 WriteLang(qq422016 qtio422016.Writer) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 Title() string -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 StreamTitle(qw422016 *qt422016.Writer) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 WriteTitle(qq422016 qtio422016.Writer) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 T(format string, args ...interface{}) string -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 StreamT(qw422016 *qt422016.Writer, format string, args ...interface{}) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 WriteT(qq422016 qtio422016.Writer, format string, args ...interface{}) -//line web/baseof.qtpl:8 +//line web/baseof.qtpl:10 } -//line web/baseof.qtpl:16 +//line web/baseof.qtpl:18 type BaseOf struct { Config *domain.Config Language language.Tag Printer *message.Printer } -//line web/baseof.qtpl:23 -func (p *BaseOf) StreamLang(qw422016 *qt422016.Writer) { -//line web/baseof.qtpl:24 - if p.Language != language.Und { //line web/baseof.qtpl:25 +func (p *BaseOf) StreamLang(qw422016 *qt422016.Writer) { +//line web/baseof.qtpl:26 + if p.Language != language.Und { +//line web/baseof.qtpl:27 qw422016.E().S(p.Language.String()) -//line web/baseof.qtpl:26 - } else { -//line web/baseof.qtpl:26 - qw422016.N().S(`en`) //line web/baseof.qtpl:28 + } else { +//line web/baseof.qtpl:28 + qw422016.N().S(`en`) +//line web/baseof.qtpl:30 } -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 } -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 func (p *BaseOf) WriteLang(qq422016 qtio422016.Writer) { -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 p.StreamLang(qw422016) -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 qt422016.ReleaseWriter(qw422016) -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 } -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 func (p *BaseOf) Lang() string { -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 qb422016 := qt422016.AcquireByteBuffer() -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 p.WriteLang(qb422016) -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 qs422016 := string(qb422016.B) -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 qt422016.ReleaseByteBuffer(qb422016) -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 return qs422016 -//line web/baseof.qtpl:29 +//line web/baseof.qtpl:31 } -//line web/baseof.qtpl:33 +//line web/baseof.qtpl:35 func (p *BaseOf) StreamTitle(qw422016 *qt422016.Writer) { -//line web/baseof.qtpl:33 +//line web/baseof.qtpl:35 qw422016.N().S(` `) -//line web/baseof.qtpl:34 +//line web/baseof.qtpl:36 qw422016.E().S(p.Config.Name) -//line web/baseof.qtpl:34 +//line web/baseof.qtpl:36 qw422016.N().S(` `) -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 } -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 func (p *BaseOf) WriteTitle(qq422016 qtio422016.Writer) { -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 p.StreamTitle(qw422016) -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 qt422016.ReleaseWriter(qw422016) -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 } -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 func (p *BaseOf) Title() string { -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 qb422016 := qt422016.AcquireByteBuffer() -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 p.WriteTitle(qb422016) -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 qs422016 := string(qb422016.B) -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 qt422016.ReleaseByteBuffer(qb422016) -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 return qs422016 -//line web/baseof.qtpl:35 +//line web/baseof.qtpl:37 } -//line web/baseof.qtpl:37 +//line web/baseof.qtpl:39 func (p *BaseOf) StreamHead(qw422016 *qt422016.Writer) { -//line web/baseof.qtpl:37 +//line web/baseof.qtpl:39 qw422016.N().S(` `) -//line web/baseof.qtpl:38 +//line web/baseof.qtpl:40 qw422016.N().S(` `) -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 } -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 func (p *BaseOf) WriteHead(qq422016 qtio422016.Writer) { -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 p.StreamHead(qw422016) -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 qt422016.ReleaseWriter(qw422016) -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 } -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 func (p *BaseOf) Head() string { -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 qb422016 := qt422016.AcquireByteBuffer() -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 p.WriteHead(qb422016) -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 qs422016 := string(qb422016.B) -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 qt422016.ReleaseByteBuffer(qb422016) -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 return qs422016 -//line web/baseof.qtpl:56 +//line web/baseof.qtpl:58 } -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 func (p *BaseOf) StreamBody(qw422016 *qt422016.Writer) { -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 } -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 func (p *BaseOf) WriteBody(qq422016 qtio422016.Writer) { -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 p.StreamBody(qw422016) -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 qt422016.ReleaseWriter(qw422016) -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 } -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 func (p *BaseOf) Body() string { -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 qb422016 := qt422016.AcquireByteBuffer() -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 p.WriteBody(qb422016) -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 qs422016 := string(qb422016.B) -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 qt422016.ReleaseByteBuffer(qb422016) -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 return qs422016 -//line web/baseof.qtpl:58 +//line web/baseof.qtpl:60 } -//line web/baseof.qtpl:60 +//line web/baseof.qtpl:62 func StreamTemplate(qw422016 *qt422016.Writer, p Page) { -//line web/baseof.qtpl:60 +//line web/baseof.qtpl:62 qw422016.N().S(` `) -//line web/baseof.qtpl:72 +//line web/baseof.qtpl:74 p.StreamHead(qw422016) -//line web/baseof.qtpl:72 +//line web/baseof.qtpl:74 qw422016.N().S(` `) -//line web/baseof.qtpl:74 +//line web/baseof.qtpl:76 p.StreamTitle(qw422016) -//line web/baseof.qtpl:74 +//line web/baseof.qtpl:76 qw422016.N().S(` `) -//line web/baseof.qtpl:77 +//line web/baseof.qtpl:79 p.StreamBody(qw422016) -//line web/baseof.qtpl:77 +//line web/baseof.qtpl:79 + qw422016.N().S(` `) +//line web/baseof.qtpl:82 + var path, vcsRevision string + + if bi, ok := debug.ReadBuildInfo(); ok { + path = bi.Path + + for i := range bi.Settings { + if bi.Settings[i].Key != "vcs.revision" { + continue + } + + vcsRevision = bi.Settings[i].Value + } + } + +//line web/baseof.qtpl:95 + qw422016.N().S(` `) +//line web/baseof.qtpl:97 + if vcsRevision != "" { +//line web/baseof.qtpl:97 + qw422016.N().S(` `) +//line web/baseof.qtpl:106 + } +//line web/baseof.qtpl:106 qw422016.N().S(` `) -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 } -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 func WriteTemplate(qq422016 qtio422016.Writer, p Page) { -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 StreamTemplate(qw422016, p) -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 qt422016.ReleaseWriter(qw422016) -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 } -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 func Template(p Page) string { -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 qb422016 := qt422016.AcquireByteBuffer() -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 WriteTemplate(qb422016, p) -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 qs422016 := string(qb422016.B) -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 qt422016.ReleaseByteBuffer(qb422016) -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 return qs422016 -//line web/baseof.qtpl:80 +//line web/baseof.qtpl:109 } -//line web/baseof.qtpl:82 +//line web/baseof.qtpl:111 func (p *BaseOf) StreamT(qw422016 *qt422016.Writer, format string, args ...interface{}) { -//line web/baseof.qtpl:82 +//line web/baseof.qtpl:111 qw422016.N().S(` `) -//line web/baseof.qtpl:83 +//line web/baseof.qtpl:112 qw422016.E().S(p.Printer.Sprintf(format, args...)) -//line web/baseof.qtpl:83 +//line web/baseof.qtpl:112 qw422016.N().S(` `) -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 } -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 func (p *BaseOf) WriteT(qq422016 qtio422016.Writer, format string, args ...interface{}) { -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 p.StreamT(qw422016, format, args...) -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 qt422016.ReleaseWriter(qw422016) -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 } -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 func (p *BaseOf) T(format string, args ...interface{}) string { -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 qb422016 := qt422016.AcquireByteBuffer() -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 p.WriteT(qb422016, format, args...) -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 qs422016 := string(qb422016.B) -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 qt422016.ReleaseByteBuffer(qb422016) -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 return qs422016 -//line web/baseof.qtpl:84 +//line web/baseof.qtpl:113 }