diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 4365b4e724f..f21a1f3ffce 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -438,6 +438,73 @@ Signature headers are to be set (but not both). It's an alternative fork of @url{https://github.com/go-fed/httpsig}.") (license license:bsd-3))) +(define-public go-github-com-a-h-templ + (package + (name "go-github-com-a-h-templ") + (version "0.3.943") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/a-h/templ") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dqcdva7z53lhfv6ldjixwp4a363sr2cv5qm8rz2w7n8ba60m37f")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/a-h/templ/docs + ;; - github.com/a-h/templ/runtime/fuzzing + (delete-file-recursively "docs") + (delete-file-recursively "runtime/fuzzing"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/a-h/templ" + #:unpack-path "github.com/a-h/templ" + ;; TODO: Find out how to enable complete test suit, which might need + ;; gopls and other extra commands available in the PATH. + #:test-flags + #~(list "-skip" (string-join + (list "Test/css-1.css" + "Test/js-1.js" + "TestFormatting" + "TestIsAvailable/existing_commands_return_true") + "|")) + #:test-subdirs #~(list "internal/...") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key unpack-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" unpack-path) + (delete-file-recursively "examples"))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-a-h-parse + go-github-com-andybalholm-brotli + go-github-com-cenkalti-backoff-v4 + go-github-com-cli-browser + go-github-com-fatih-color + go-github-com-fsnotify-fsnotify + go-github-com-google-go-cmp + go-github-com-natefinch-atomic + go-github-com-rs-cors + go-golang-org-x-mod + go-golang-org-x-net + go-golang-org-x-sync + go-golang-org-x-tools)) + (home-page "https://templ.guide/") + (synopsis "Language for writing HTML user interfaces in Golang") + (description + "This package implements a functionality to create components that render +fragments of HTML and compose them to create screens, pages, documents, or +apps.") + (license license:expat))) + (define-public go-github-com-aki237-nscjar (package (name "go-github-com-aki237-nscjar") @@ -13613,6 +13680,22 @@ carries no encryption keys and cannot decode the traffic that it proxies."))) (propagated-inputs '()) (inputs '()))) +(define-public templ + (package/inherit go-github-com-a-h-templ + (name "templ") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-a-h-templ) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:import-path _ "github.com/a-h/templ") + "github.com/a-h/templ/cmd/templ"))) + (native-inputs + (append (package-native-inputs go-github-com-a-h-templ) + (package-propagated-inputs go-github-com-a-h-templ))) + (propagated-inputs '()) + (inputs '()))) + (define-public xurls (package/inherit go-mvdan-cc-xurls-v2 (name "xurls")