From 9478227547b725b0e66e879dffb9da618a9661ab Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Mon, 30 Sep 2024 20:08:38 -0400 Subject: [PATCH] refactor: rename buf-publish.yml to publish-assets.yml --- .../{buf-publish.yml => publish-assets.yml} | 5 +- .github/workflows/scheduled-release.yml | 3 +- .github/workflows/version-bump.yml | 4 +- Makefile | 1 + cmd/motrd/proxy.go | 25 ++------- pkg/nebula/assets/config.pkl | 2 + pkg/nebula/models/Button.pkl.go | 8 +++ pkg/nebula/models/Hero.pkl.go | 20 +++++++ pkg/nebula/models/Image.pkl.go | 10 ++++ pkg/nebula/models/Link.pkl.go | 8 +++ pkg/nebula/models/Models.pkl.go | 52 +++++++++++++++++++ pkg/nebula/models/SocialLink.pkl.go | 8 +++ pkg/nebula/models/Stat.pkl.go | 8 +++ pkg/nebula/models/common.go | 1 + pkg/nebula/models/init.pkl.go | 14 +++++ pkg/nebula/models/marketing.go | 1 + pkg/nebula/nebula.go | 8 +++ pkl/uiux.pkl | 44 ++++++++++++++++ 18 files changed, 196 insertions(+), 26 deletions(-) rename .github/workflows/{buf-publish.yml => publish-assets.yml} (91%) create mode 100644 pkg/nebula/assets/config.pkl create mode 100644 pkg/nebula/models/Button.pkl.go create mode 100644 pkg/nebula/models/Hero.pkl.go create mode 100644 pkg/nebula/models/Image.pkl.go create mode 100644 pkg/nebula/models/Link.pkl.go create mode 100644 pkg/nebula/models/Models.pkl.go create mode 100644 pkg/nebula/models/SocialLink.pkl.go create mode 100644 pkg/nebula/models/Stat.pkl.go create mode 100644 pkg/nebula/models/common.go create mode 100644 pkg/nebula/models/init.pkl.go create mode 100644 pkg/nebula/models/marketing.go create mode 100644 pkl/uiux.pkl diff --git a/.github/workflows/buf-publish.yml b/.github/workflows/publish-assets.yml similarity index 91% rename from .github/workflows/buf-publish.yml rename to .github/workflows/publish-assets.yml index 751af5709..0f1c633a7 100644 --- a/.github/workflows/buf-publish.yml +++ b/.github/workflows/publish-assets.yml @@ -1,4 +1,4 @@ -name: Publish to buf.build/didao/sonr +name: Upload Public Assets on: push: branches: @@ -10,6 +10,7 @@ permissions: jobs: buf_push: + name: Publish to buf.build/onsonr/sonr runs-on: ubuntu-latest steps: # Run `git checkout` @@ -25,6 +26,7 @@ jobs: upload_pkl: runs-on: ubuntu-latest + name: Publish to pkl.sh steps: - name: checkout uses: actions/checkout@v4 @@ -40,6 +42,7 @@ jobs: upload_nebula_cdn: runs-on: ubuntu-latest + name: Publish to cdn.sonr.id steps: - name: checkout uses: actions/checkout@v4 diff --git a/.github/workflows/scheduled-release.yml b/.github/workflows/scheduled-release.yml index be09a4fae..6de7d324a 100644 --- a/.github/workflows/scheduled-release.yml +++ b/.github/workflows/scheduled-release.yml @@ -1,4 +1,4 @@ -name: "Release Binary" +name: Scheduled Release on: push: @@ -12,6 +12,7 @@ permissions: jobs: goreleaser: + name: Release motr, sonrd, and DWN permissions: write-all runs-on: ubuntu-latest steps: diff --git a/.github/workflows/version-bump.yml b/.github/workflows/version-bump.yml index 38d3b9036..ef2e2df9a 100644 --- a/.github/workflows/version-bump.yml +++ b/.github/workflows/version-bump.yml @@ -1,4 +1,4 @@ -name: Bump version +name: Update Version on: push: @@ -11,8 +11,8 @@ permissions: jobs: run-tests: - runs-on: ubuntu-latest name: "Run tests" + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 diff --git a/Makefile b/Makefile index e3bf3827d..b73c5b6cb 100644 --- a/Makefile +++ b/Makefile @@ -320,6 +320,7 @@ pkl: go run github.com/apple/pkl-go/cmd/pkl-gen-go ./pkl/fmt.pkl go run github.com/apple/pkl-go/cmd/pkl-gen-go ./pkl/orm.pkl go run github.com/apple/pkl-go/cmd/pkl-gen-go ./pkl/txns.pkl + go run github.com/apple/pkl-go/cmd/pkl-gen-go ./pkl/uiux.pkl start-caddy: @echo "(start-caddy) Starting caddy" diff --git a/cmd/motrd/proxy.go b/cmd/motrd/proxy.go index 200db70ee..d3490c5ee 100644 --- a/cmd/motrd/proxy.go +++ b/cmd/motrd/proxy.go @@ -1,11 +1,7 @@ package main import ( - "context" "net/http" - "os" - "os/signal" - "time" "github.com/labstack/echo/v4" "github.com/labstack/gommon/log" @@ -30,26 +26,11 @@ func NewProxyCmd() *cobra.Command { } e.GET("/", pages.Home) + e.GET("/config", nebula.GetConfig) e.GET("/allocate", pages.Profile) - // Start server - ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt) - defer stop() - // Start server - go func() { - if err := e.Start(":1323"); err != nil && err != http.ErrServerClosed { - e.Logger.Fatal("shutting down the server") - } - }() - - // Wait for interrupt signal to gracefully shutdown the server with a timeout of 10 seconds. - <-ctx.Done() - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - - // Shutdown the server with 10 seconds timeout. - if err := e.Shutdown(ctx); err != nil { - e.Logger.Fatal(err) + if err := e.Start(":1323"); err != http.ErrServerClosed { + log.Fatal(err) } }, } diff --git a/pkg/nebula/assets/config.pkl b/pkg/nebula/assets/config.pkl new file mode 100644 index 000000000..dc25bae59 --- /dev/null +++ b/pkg/nebula/assets/config.pkl @@ -0,0 +1,2 @@ +import "https://pkl.sh/uiux.pkl"; + diff --git a/pkg/nebula/models/Button.pkl.go b/pkg/nebula/models/Button.pkl.go new file mode 100644 index 000000000..b6b277582 --- /dev/null +++ b/pkg/nebula/models/Button.pkl.go @@ -0,0 +1,8 @@ +// Code generated from Pkl module `models`. DO NOT EDIT. +package models + +type Button struct { + Text string `pkl:"text"` + + Href string `pkl:"href"` +} diff --git a/pkg/nebula/models/Hero.pkl.go b/pkg/nebula/models/Hero.pkl.go new file mode 100644 index 000000000..1001dc4a6 --- /dev/null +++ b/pkg/nebula/models/Hero.pkl.go @@ -0,0 +1,20 @@ +// Code generated from Pkl module `models`. DO NOT EDIT. +package models + +type Hero struct { + TitleFirst string `pkl:"titleFirst"` + + TitleEmphasis string `pkl:"titleEmphasis"` + + TitleSecond string `pkl:"titleSecond"` + + Subtitle string `pkl:"subtitle"` + + PrimaryButton *Button `pkl:"primaryButton"` + + SecondaryButton *Button `pkl:"secondaryButton"` + + Image *Image `pkl:"image"` + + Stats []*Stat `pkl:"stats"` +} diff --git a/pkg/nebula/models/Image.pkl.go b/pkg/nebula/models/Image.pkl.go new file mode 100644 index 000000000..e694c93a5 --- /dev/null +++ b/pkg/nebula/models/Image.pkl.go @@ -0,0 +1,10 @@ +// Code generated from Pkl module `models`. DO NOT EDIT. +package models + +type Image struct { + Src string `pkl:"src"` + + Width int `pkl:"width"` + + Height int `pkl:"height"` +} diff --git a/pkg/nebula/models/Link.pkl.go b/pkg/nebula/models/Link.pkl.go new file mode 100644 index 000000000..dc0342440 --- /dev/null +++ b/pkg/nebula/models/Link.pkl.go @@ -0,0 +1,8 @@ +// Code generated from Pkl module `models`. DO NOT EDIT. +package models + +type Link struct { + Text string `pkl:"text"` + + Href string `pkl:"href"` +} diff --git a/pkg/nebula/models/Models.pkl.go b/pkg/nebula/models/Models.pkl.go new file mode 100644 index 000000000..c896a12be --- /dev/null +++ b/pkg/nebula/models/Models.pkl.go @@ -0,0 +1,52 @@ +// Code generated from Pkl module `models`. DO NOT EDIT. +package models + +import ( + "context" + + "github.com/apple/pkl-go/pkl" +) + +type Models struct { +} + +// LoadFromPath loads the pkl module at the given path and evaluates it into a Models +func LoadFromPath(ctx context.Context, path string) (ret *Models, err error) { + evaluator, err := pkl.NewEvaluator(ctx, pkl.PreconfiguredOptions) + if err != nil { + return nil, err + } + defer func() { + cerr := evaluator.Close() + if err == nil { + err = cerr + } + }() + ret, err = Load(ctx, evaluator, pkl.FileSource(path)) + return ret, err +} + +// LoadFromURL loads the pkl module at the given URL and evaluates it into a Models +func LoadFromURL(ctx context.Context, url string) (ret *Models, err error) { + evaluator, err := pkl.NewEvaluator(ctx, pkl.PreconfiguredOptions) + if err != nil { + return nil, err + } + defer func() { + cerr := evaluator.Close() + if err == nil { + err = cerr + } + }() + ret, err = Load(ctx, evaluator, pkl.UriSource(url)) + return ret, err +} + +// Load loads the pkl module at the given source and evaluates it with the given evaluator into a Models +func Load(ctx context.Context, evaluator pkl.Evaluator, source *pkl.ModuleSource) (*Models, error) { + var ret Models + if err := evaluator.EvaluateModule(ctx, source, &ret); err != nil { + return nil, err + } + return &ret, nil +} diff --git a/pkg/nebula/models/SocialLink.pkl.go b/pkg/nebula/models/SocialLink.pkl.go new file mode 100644 index 000000000..39399369b --- /dev/null +++ b/pkg/nebula/models/SocialLink.pkl.go @@ -0,0 +1,8 @@ +// Code generated from Pkl module `models`. DO NOT EDIT. +package models + +type SocialLink struct { + Link *Link `pkl:"link"` + + Icon string `pkl:"icon"` +} diff --git a/pkg/nebula/models/Stat.pkl.go b/pkg/nebula/models/Stat.pkl.go new file mode 100644 index 000000000..a58923b5a --- /dev/null +++ b/pkg/nebula/models/Stat.pkl.go @@ -0,0 +1,8 @@ +// Code generated from Pkl module `models`. DO NOT EDIT. +package models + +type Stat struct { + Value string `pkl:"value"` + + Label string `pkl:"label"` +} diff --git a/pkg/nebula/models/common.go b/pkg/nebula/models/common.go new file mode 100644 index 000000000..2640e7f93 --- /dev/null +++ b/pkg/nebula/models/common.go @@ -0,0 +1 @@ +package models diff --git a/pkg/nebula/models/init.pkl.go b/pkg/nebula/models/init.pkl.go new file mode 100644 index 000000000..97233e92d --- /dev/null +++ b/pkg/nebula/models/init.pkl.go @@ -0,0 +1,14 @@ +// Code generated from Pkl module `models`. DO NOT EDIT. +package models + +import "github.com/apple/pkl-go/pkl" + +func init() { + pkl.RegisterMapping("models", Models{}) + pkl.RegisterMapping("models#Image", Image{}) + pkl.RegisterMapping("models#Link", Link{}) + pkl.RegisterMapping("models#SocialLink", SocialLink{}) + pkl.RegisterMapping("models#Button", Button{}) + pkl.RegisterMapping("models#Stat", Stat{}) + pkl.RegisterMapping("models#Hero", Hero{}) +} diff --git a/pkg/nebula/models/marketing.go b/pkg/nebula/models/marketing.go new file mode 100644 index 000000000..2640e7f93 --- /dev/null +++ b/pkg/nebula/models/marketing.go @@ -0,0 +1 @@ +package models diff --git a/pkg/nebula/nebula.go b/pkg/nebula/nebula.go index 49779a784..055980c95 100644 --- a/pkg/nebula/nebula.go +++ b/pkg/nebula/nebula.go @@ -11,6 +11,9 @@ import ( //go:embed assets var embeddedFiles embed.FS +//go:embed assets/config.pkl +var config []byte + func getHTTPFS() (http.FileSystem, error) { fsys, err := fs.Sub(embeddedFiles, "assets") if err != nil { @@ -30,3 +33,8 @@ func UseAssets(e *echo.Echo) error { e.GET("/assets/*", echo.WrapHandler(http.StripPrefix("/assets/", assets))) return nil } + +// GetConfig is a middleware that serves the config file +func GetConfig(e echo.Context) error { + return e.Blob(http.StatusOK, "application/octet-stream", config) +} diff --git a/pkl/uiux.pkl b/pkl/uiux.pkl new file mode 100644 index 000000000..81d0fa619 --- /dev/null +++ b/pkl/uiux.pkl @@ -0,0 +1,44 @@ +@go.Package { name = "github.com/onsonr/sonr/pkg/nebula/models" } + +module models + +import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.5.0#/go.pkl" + +class Image { + src: String + width: Int + height: Int +} + +class Link { + text: String + href: String +} + +class SocialLink { + link: Link + icon: String +} + +class Button { + text: String + href: String +} + +class Stat { + value: String + label: String +} + +class Hero { + titleFirst: String + titleEmphasis: String + titleSecond: String + subtitle: String + primaryButton: Button + secondaryButton: Button + image: Image + stats: List +} + +