2023-12-10 08:03:57 -05:00
|
|
|
;;; GNU Guix --- Functional package management for GNU
|
|
|
|
;;; Copyright © 2023 Pierre-Henry Fröhring <phfrohring@deeplinks.com>
|
|
|
|
;;;
|
|
|
|
;;; This file is part of GNU Guix.
|
|
|
|
;;;
|
|
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
|
|
;;; under the terms of the GNU General Public License as published by
|
|
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
|
|
;;; your option) any later version.
|
|
|
|
;;;
|
|
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
;;; GNU General Public License for more details.
|
|
|
|
;;;
|
|
|
|
;;; You should have received a copy of the GNU General Public License
|
|
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
(define-module (gnu packages elixir-xyz)
|
|
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
|
|
#:use-module (gnu packages elixir)
|
|
|
|
#:use-module (gnu packages linux)
|
2023-12-10 08:04:00 -05:00
|
|
|
#:use-module (gnu packages compression)
|
|
|
|
#:use-module (gnu packages base)
|
2023-12-10 08:03:57 -05:00
|
|
|
#:use-module (gnu packages)
|
|
|
|
#:use-module (guix build-system gnu)
|
|
|
|
#:use-module (guix build-system mix)
|
|
|
|
#:use-module (guix download)
|
|
|
|
#:use-module (guix git-download)
|
|
|
|
#:use-module (guix gexp)
|
|
|
|
#:use-module (guix utils)
|
|
|
|
#:use-module (guix packages)
|
|
|
|
#:use-module (srfi srfi-1)
|
|
|
|
#:use-module (srfi srfi-26))
|
|
|
|
|
|
|
|
(define-public elixir-nimble-parsec
|
|
|
|
(package
|
|
|
|
(name "elixir-nimble-parsec")
|
|
|
|
(version "1.3.1")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(synopsis "Text-based parser combinators")
|
|
|
|
(description
|
|
|
|
"This library provides primitives for efficient parser combinators, allowing
|
|
|
|
for higher-level combinators through composition.")
|
|
|
|
(home-page "https://hexdocs.pm/nimble_parsec/")
|
|
|
|
(license license:asl2.0)))
|
|
|
|
|
2023-12-10 08:03:58 -05:00
|
|
|
(define-public elixir-makeup
|
|
|
|
(package
|
|
|
|
(name "elixir-makeup")
|
|
|
|
(version "1.1.0")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(propagated-inputs (list elixir-nimble-parsec))
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(synopsis "Syntax highlighter for source code")
|
|
|
|
(description
|
|
|
|
"Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting,
|
|
|
|
forums, wikis or other applications that need to prettify source code.")
|
|
|
|
(home-page "https://hexdocs.pm/makeup/")
|
|
|
|
(license license:bsd-2)))
|
|
|
|
|
2023-12-10 08:03:59 -05:00
|
|
|
(define-public elixir-jason
|
|
|
|
(package
|
|
|
|
(name "elixir-jason")
|
|
|
|
(version "1.4.1")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(synopsis "JSON parser and generator")
|
|
|
|
(description
|
|
|
|
"Parser and generator are written in pure Elixir and optimized for speed. They
|
|
|
|
are at least twice as fast as other Elixir/Erlang libraries (e.g.
|
|
|
|
Poison). The performance is comparable to jiffy, which is implemented in C as
|
|
|
|
a NIF.")
|
|
|
|
(home-page "https://hexdocs.pm/jason/")
|
|
|
|
(license license:asl2.0)))
|
|
|
|
|
2023-12-10 08:04:00 -05:00
|
|
|
(define-public elixir-file-system
|
|
|
|
(package
|
|
|
|
(name "elixir-file-system")
|
|
|
|
(version "0.2.10")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1"))
|
|
|
|
(snippet #~(begin
|
|
|
|
(use-modules (guix build utils) (ice-9 ftw))
|
|
|
|
(mkdir "source")
|
|
|
|
(for-each (lambda (file)
|
|
|
|
(when (not (member file '("." ".." "source")))
|
|
|
|
(rename-file file (string-append "source/" file))))
|
|
|
|
(scandir "."))
|
|
|
|
(with-directory-excursion "source"
|
|
|
|
(invoke (string-append #+gzip "/bin/gunzip") "-v" "contents.tar.gz")
|
|
|
|
(invoke (string-append #+tar "/bin/tar") "-xvf" "contents.tar")
|
|
|
|
(delete-file "contents.tar")
|
|
|
|
(delete-file "priv/inotifywait.exe"))))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(propagated-inputs (list inotify-tools))
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(synopsis "File system change watcher")
|
|
|
|
(description "Provides a file system change watcher wrapper based on
|
|
|
|
https://github.com/synrc/fs.")
|
|
|
|
(home-page "https://hexdocs.pm/file_system/")
|
|
|
|
(license license:wtfpl2)))
|
|
|
|
|
2023-12-10 08:04:01 -05:00
|
|
|
(define-public elixir-bunt
|
|
|
|
(package
|
|
|
|
(name "elixir-bunt")
|
|
|
|
(version "0.2.1")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(synopsis "256 color ANSI coloring in the terminal")
|
|
|
|
(description "Bunt is an Elixir package that enables 256 color ANSI
|
|
|
|
coloring in the terminal and allows users to alias colors to more semantic and
|
|
|
|
application-specific names1.")
|
|
|
|
(home-page "https://hexdocs.pm/bunt/")
|
|
|
|
(license license:expat)))
|
|
|
|
|
2023-12-10 08:04:02 -05:00
|
|
|
(define-public elixir-inch-ex
|
|
|
|
(package
|
|
|
|
(name "elixir-inch-ex")
|
|
|
|
(version "2.0.0")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(propagated-inputs (list elixir-bunt elixir-jason))
|
|
|
|
(synopsis
|
|
|
|
"Suggest enhancements for inline documentation")
|
|
|
|
(description
|
|
|
|
"This package provides a Mix task that gives you hints where to improve your
|
|
|
|
inline docs.")
|
|
|
|
(home-page "https://hex.pm/packages/inch_ex")
|
|
|
|
(license license:expat)))
|
|
|
|
|
2023-12-10 08:04:03 -05:00
|
|
|
(define-public elixir-castore
|
|
|
|
(package
|
|
|
|
(name "elixir-castore")
|
|
|
|
(version "1.0.4")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(synopsis "Up-to-date CA certificate store")
|
|
|
|
(description "The Elixir castore package is a micro-library that provides
|
|
|
|
an up-to-date CA certificate store file for Elixir applications.")
|
|
|
|
(home-page "https://hexdocs.pm/castore/")
|
|
|
|
(license license:asl2.0)))
|
|
|
|
|
2023-12-10 08:04:04 -05:00
|
|
|
(define-public elixir-excoveralls
|
|
|
|
(package
|
|
|
|
(name "elixir-excoveralls")
|
|
|
|
(version "0.18.0")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(propagated-inputs (list elixir-castore elixir-jason))
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(synopsis "Coverage report tool with coveralls.io integration")
|
|
|
|
(description
|
|
|
|
"Library that reports test coverage statistics, with the option to
|
|
|
|
post to coveralls.io service. It uses Erlang's cover to generate coverage
|
|
|
|
information, and posts the test coverage results to coveralls.io through the
|
|
|
|
JSON API.")
|
|
|
|
(home-page "https://hexdocs.pm/excoveralls/")
|
|
|
|
(license license:expat)))
|
|
|
|
|
2023-12-10 08:04:05 -05:00
|
|
|
(define-public elixir-credo
|
|
|
|
(package
|
|
|
|
(name "elixir-credo")
|
|
|
|
(version "1.7.1")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(propagated-inputs (list elixir-bunt elixir-file-system elixir-jason))
|
|
|
|
(native-inputs (list elixir-excoveralls elixir-inch-ex))
|
|
|
|
(synopsis "Static code analysis tool")
|
|
|
|
(description
|
|
|
|
"Credo is a static code analysis tool for the Elixir language with a focus on
|
|
|
|
teaching and code consistency. Credo can show you refactoring opportunities in
|
|
|
|
your code, complex code fragments, warn you about common mistakes, show
|
|
|
|
inconsistencies in your naming scheme and - if needed - help you enforce a
|
|
|
|
desired coding style.")
|
|
|
|
(home-page "https://hexdocs.pm/credo/")
|
|
|
|
(license license:expat)))
|
|
|
|
|
2023-12-10 08:04:06 -05:00
|
|
|
(define-public elixir-erlex
|
|
|
|
(package
|
|
|
|
(name "elixir-erlex")
|
|
|
|
(version "0.2.6")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(synopsis
|
|
|
|
"Convert Erlang style structs and error messages to equivalent Elixir")
|
|
|
|
(description
|
|
|
|
"Converted structs and error messages are useful for pretty printing
|
|
|
|
things like Dialyzer errors and Observer.")
|
|
|
|
(home-page "https://hexdocs.pm/erlex/")
|
|
|
|
(license license:asl2.0)))
|
|
|
|
|
2023-12-10 08:04:07 -05:00
|
|
|
(define-public elixir-dialyxir
|
|
|
|
(package
|
|
|
|
(name "elixir-dialyxir")
|
|
|
|
(version "1.4.1")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(arguments (list #:tests? #f)) ; no tests
|
|
|
|
(propagated-inputs (list elixir-erlex))
|
|
|
|
(synopsis "Mix tasks to simplify use of Dialyzer")
|
|
|
|
(description
|
|
|
|
"Mix Tasks are usable from the directory of the mix project you want to analyze.")
|
|
|
|
(home-page "https://hexdocs.pm/dialyxir/")
|
|
|
|
(license license:asl2.0)))
|
|
|
|
|
2023-12-10 08:04:08 -05:00
|
|
|
(define-public elixir-machete
|
|
|
|
(package
|
|
|
|
(name "elixir-machete")
|
|
|
|
(version "0.2.8")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (hexpm-uri name version))
|
|
|
|
(sha256
|
|
|
|
(base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9"))))
|
|
|
|
(build-system mix-build-system)
|
|
|
|
(native-inputs (list elixir-credo elixir-dialyxir))
|
|
|
|
(synopsis "Literate test matchers for ExUnit")
|
|
|
|
(description
|
|
|
|
"Machete provides ergonomic match operators that act as building blocks to let
|
|
|
|
you define test expectations that can match data against any combination of
|
|
|
|
literals, variables, or parametrically defined matchers.")
|
|
|
|
(home-page "https://hexdocs.pm/machete/")
|
|
|
|
(license license:expat)))
|
|
|
|
|
2023-12-10 08:03:57 -05:00
|
|
|
;;;
|
|
|
|
;;; Avoid adding new packages to the end of this file. To reduce the chances
|
|
|
|
;;; of a merge conflict, place them above by existing packages with similar
|
|
|
|
;;; functionality or similar names.
|
|
|
|
;;;
|