gnu: Add elm-todomvc.
* gnu/packages/elm.scm (elm-todomvc): New variable. * doc/guix.texi (Build Systems)[elm-build-system]: Mention it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
9885c2fd07
commit
b6c0f18dee
2 changed files with 55 additions and 2 deletions
|
@ -8748,7 +8748,7 @@ Elm @dfn{projects} which declare @code{@{ "type": "package" @}} in their
|
||||||
@file{elm.json} files. Using @code{elm-build-system} to build Elm
|
@file{elm.json} files. Using @code{elm-build-system} to build Elm
|
||||||
@dfn{applications} (which declare @code{@{ "type": "application" @}}) is
|
@dfn{applications} (which declare @code{@{ "type": "application" @}}) is
|
||||||
possible, but requires ad-hoc modifications to the build phases. For
|
possible, but requires ad-hoc modifications to the build phases. For
|
||||||
an example, see the definition of
|
examples, see the definitions of the @code{elm-todomvc} example application and
|
||||||
the @code{elm} package itself (because the front-end for the
|
the @code{elm} package itself (because the front-end for the
|
||||||
@samp{elm reactor} command is an Elm application).
|
@samp{elm reactor} command is an Elm application).
|
||||||
|
|
||||||
|
@ -8757,7 +8757,7 @@ Elm supports multiple versions of a package coexisting simultaneously under
|
||||||
@env{ELM_HOME}, but this does not yet work well with @code{elm-build-system}.
|
@env{ELM_HOME}, but this does not yet work well with @code{elm-build-system}.
|
||||||
This limitation primarily affects Elm applications, because they specify
|
This limitation primarily affects Elm applications, because they specify
|
||||||
exact versions for their dependencies, whereas Elm packages specify supported
|
exact versions for their dependencies, whereas Elm packages specify supported
|
||||||
version ranges. As a workaround, you can use
|
version ranges. As a workaround, the example applications mentioned above use
|
||||||
the @code{patch-application-dependencies} procedure provided by
|
the @code{patch-application-dependencies} procedure provided by
|
||||||
@code{(guix build elm-build-system)} to rewrite their @file{elm.json} files to
|
@code{(guix build elm-build-system)} to rewrite their @file{elm.json} files to
|
||||||
refer to the package versions actually present in the build environment.
|
refer to the package versions actually present in the build environment.
|
||||||
|
|
|
@ -487,3 +487,56 @@ you.")
|
||||||
on the @code{marked} project, which focuses on speed.")
|
on the @code{marked} project, which focuses on speed.")
|
||||||
(license license:bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
(define-public elm-todomvc
|
||||||
|
(let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "elm-todomvc")
|
||||||
|
(version (git-version "1" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/evancz/elm-todomvc")
|
||||||
|
(commit commit)))
|
||||||
|
(sha256
|
||||||
|
(base32 "0g37bglzshkf79s4n7aq9ib44h5qn8ng7n72sh2xslgd20h05nfw"))
|
||||||
|
(file-name (git-file-name name version))))
|
||||||
|
(inputs (list elm-browser elm-core elm-html elm-json))
|
||||||
|
(build-system elm-build-system)
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:modules
|
||||||
|
`((srfi srfi-26)
|
||||||
|
,@%elm-default-modules)
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(delete 'stage)
|
||||||
|
(replace 'configure
|
||||||
|
patch-application-dependencies)
|
||||||
|
(replace 'build
|
||||||
|
(lambda* (#:key native-inputs inputs #:allow-other-keys)
|
||||||
|
(invoke (search-input-file (or native-inputs inputs)
|
||||||
|
"/bin/elm")
|
||||||
|
"make"
|
||||||
|
"src/Main.elm"
|
||||||
|
"--output=elm.js")))
|
||||||
|
(replace 'install
|
||||||
|
(lambda args
|
||||||
|
(let* ((out-dir #$output)
|
||||||
|
(dest-dir
|
||||||
|
(string-append out-dir
|
||||||
|
"/share/"
|
||||||
|
(strip-store-file-name out-dir))))
|
||||||
|
(for-each (cut install-file <> dest-dir)
|
||||||
|
`("elm.js"
|
||||||
|
"index.html"
|
||||||
|
"style.css"
|
||||||
|
"README.md")))))
|
||||||
|
(delete 'validate-compiled))))
|
||||||
|
(home-page "https://github.com/evancz/elm-todomvc")
|
||||||
|
(synopsis "TodoMVC in Elm")
|
||||||
|
(description "This is the official Elm implementation of
|
||||||
|
@url{https://todomvc.com,TodoMVC}, a simple to-do--list application used to
|
||||||
|
compare front-end web frameworks.")
|
||||||
|
(license license:bsd-3))))
|
||||||
|
|
Reference in a new issue