summaryrefslogtreecommitdiff
path: root/gnu/packages/elixir-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/elixir-xyz.scm')
-rw-r--r--gnu/packages/elixir-xyz.scm294
1 files changed, 294 insertions, 0 deletions
diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm
new file mode 100644
index 0000000000..5af8d7c1b4
--- /dev/null
+++ b/gnu/packages/elixir-xyz.scm
@@ -0,0 +1,294 @@
+;;; 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)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages base)
+ #: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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+(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)))
+
+;;;
+;;; 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.
+;;;