From 3c26baa3cfafcb6a307287bcc10c45d2ba45fa48 Mon Sep 17 00:00:00 2001 From: Tigor Hutasuhut Date: Wed, 1 May 2024 15:51:52 +0700 Subject: [PATCH] web: support for versioning from environment variables --- Makefile | 46 ++++++++++++++++------------- config/default.go | 4 +++ views/components/head.templ | 5 ++-- views/components/htmx.templ | 9 ++++++ views/components/theme_change.templ | 8 +++++ 5 files changed, 48 insertions(+), 24 deletions(-) create mode 100644 views/components/htmx.templ create mode 100644 views/components/theme_change.templ diff --git a/Makefile b/Makefile index 895c022..5c65282 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,10 @@ export GOOSE_DRIVER=sqlite3 export GOOSE_DBSTRING=./data.db export GOOSE_MIGRATION_DIR=db/migrations +export REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION=$(shell echo "$${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION:-1.9.12}") +export REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION=$(shell echo "$${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION:-1.11.10}") +export REDMAGE_WEB_DEPENDENCIES_THEMECHANGE_VERSION=$(shell echo "$${REDMAGE_WEB_DEPENDENCIES_THEMECHANGE_VERSION:-2.0.2}") + start: dev-dependencies @air @@ -27,40 +31,40 @@ build-dependencies: echo "Node modules not found, installing them" npm install fi - @if [ ! -f "public/htmx-1.9.11.min.js" ]; then + @if [ ! -f "public/htmx-${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION}.min.js" ]; then mkdir -p public - echo "Htmx not found, installing it" - curl -o public/htmx-1.9.11.min.js https://unpkg.com/htmx.org@1.9.11/dist/htmx.min.js + echo "Htmx ${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION} not found, installing it" + curl -o public/htmx-${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION}.min.js https://unpkg.com/htmx.org@${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION}/dist/htmx.min.js fi - @if [ ! -f "public/htmx-response-targets-1.9.11.min.js" ]; then + @if [ ! -f "public/htmx-response-targets-${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION}.min.js" ]; then mkdir -p public - echo "Htmx response targets not found, installing it" - curl -o public/htmx-response-targets-1.9.11.min.js https://cdnjs.cloudflare.com/ajax/libs/htmx/1.9.11/ext/response-targets.min.js + echo "Htmx response targets ${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION} not found, installing it" + curl -o public/htmx-response-targets-${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION}.min.js https://cdnjs.cloudflare.com/ajax/libs/htmx/${REDMAGE_WEB_DEPENDENCIES_HTMX_VERSION}/ext/response-targets.min.js fi - @if [ ! -f "public/dayjs-1.11.10.min.js" ]; then + @if [ ! -f "public/dayjs-${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}.min.js" ]; then mkdir -p public - echo "Dayjs not found, installing it" - curl -o public/dayjs-1.11.10.min.js https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.10/dayjs.min.js + echo "Dayjs ${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION} not found, installing it" + curl -o public/dayjs-${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}.min.js https://cdnjs.cloudflare.com/ajax/libs/dayjs/${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}/dayjs.min.js fi - @if [ ! -f "public/dayjs-relativeTime-1.11.10.min.js" ]; then + @if [ ! -f "public/dayjs-relativeTime-${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}.min.js" ]; then mkdir -p public - echo "Dayjs Relative Time not found, installing it" - curl -o public/dayjs-relativeTime-1.11.10.min.js https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.10/plugin/relativeTime.min.js + echo "Dayjs Relative Time ${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION} not found, installing it" + curl -o public/dayjs-relativeTime-${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}.min.js https://cdnjs.cloudflare.com/ajax/libs/dayjs/${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}/plugin/relativeTime.min.js fi - @if [ ! -f "public/dayjs-utc-1.11.10.min.js" ]; then + @if [ ! -f "public/dayjs-utc-${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}.min.js" ]; then mkdir -p public - echo "Dayjs UTC plugin not found, installing it" - curl -o public/dayjs-utc-1.11.10.min.js https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.10/plugin/utc.min.js + echo "Dayjs UTC ${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION} plugin not found, installing it" + curl -o public/dayjs-utc-${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}.min.js https://cdnjs.cloudflare.com/ajax/libs/dayjs/${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}/plugin/utc.min.js fi - @if [ ! -f "public/dayjs-timezone-1.11.10.min.js" ]; then + @if [ ! -f "public/dayjs-timezone-${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}.min.js" ]; then mkdir -p public - echo "Dayjs Timezone plugin not found, installing it" - curl -o public/dayjs-timezone-1.11.10.min.js https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.10/plugin/timezone.min.js + echo "Dayjs Timezone ${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION} plugin not found, installing it" + curl -o public/dayjs-timezone-${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}.min.js https://cdnjs.cloudflare.com/ajax/libs/dayjs/${REDMAGE_WEB_DEPENDENCIES_DAYJS_VERSION}/plugin/timezone.min.js fi - @if [ ! -f "public/theme-change-2.0.2.min.js" ]; then + @if [ ! -f "public/theme-change-${REDMAGE_WEB_DEPENDENCIES_THEMECHANGE_VERSION}.min.js" ]; then mkdir -p public - echo "Theme change not found, installing it" - curl -o public/theme-change-2.0.2.min.js https://cdn.jsdelivr.net/npm/theme-change@2.0.2/index.js + echo "Theme change ${REDMAGE_WEB_DEPENDENCIES_THEMECHANGE_VERSION} not found, installing it" + curl -o public/theme-change-${REDMAGE_WEB_DEPENDENCIES_THEMECHANGE_VERSION}.min.js https://cdn.jsdelivr.net/npm/theme-change@${REDMAGE_WEB_DEPENDENCIES_THEMECHANGE_VERSION}/index.js fi build: build-dependencies prepare diff --git a/config/default.go b/config/default.go index 48c939a..ef21695 100644 --- a/config/default.go +++ b/config/default.go @@ -56,6 +56,10 @@ var DefaultConfig = map[string]any{ "telemetry.trace.ratio": 1, + "web.dependencies.htmx.version": "1.9.12", + "web.dependencies.dayjs.version": "1.11.10", + "web.dependencies.themechange.version": "2.0.2", + "runtime.version": "0.0.1", "runtime.environment": "development", } diff --git a/views/components/head.templ b/views/components/head.templ index b4be304..a0da850 100644 --- a/views/components/head.templ +++ b/views/components/head.templ @@ -8,9 +8,8 @@ templ Head(vc *views.Context, extras ...templ.Component) { - - - + @HTMX(vc) + @ThemeChange(vc) if vc.Config.Bool("http.hotreload") { } diff --git a/views/components/htmx.templ b/views/components/htmx.templ new file mode 100644 index 0000000..070edb9 --- /dev/null +++ b/views/components/htmx.templ @@ -0,0 +1,9 @@ +package components + +import "github.com/tigorlazuardi/redmage/views" +import "fmt" + +templ HTMX(c *views.Context) { + + +} diff --git a/views/components/theme_change.templ b/views/components/theme_change.templ new file mode 100644 index 0000000..660d2ba --- /dev/null +++ b/views/components/theme_change.templ @@ -0,0 +1,8 @@ +package components + +import "github.com/tigorlazuardi/redmage/views" +import "fmt" + +templ ThemeChange(c *views.Context) { + +}