summary refs log tree commit diff
path: root/gnu/packages/golang-xyz.scm
diff options
context:
space:
mode:
authorArtyom V. Poptsov <poptsov.artyom@gmail.com>2024-01-20 21:07:27 +0300
committerSharlatan Hellseher <sharlatanus@gmail.com>2024-02-05 15:42:51 +0000
commit317d9840d371469daa23d13ac7c62477ed347b54 (patch)
tree78d368a140485672a5b822b4bbf9845ad8843813 /gnu/packages/golang-xyz.scm
parenta3df20db8c3b9c819db7ca29bf014e2544e389d4 (diff)
downloadguix-317d9840d371469daa23d13ac7c62477ed347b54.tar.gz
gnu: Add go-github-com-gabriel-vasile-mimetype.
* gnu/packages/golang.scm (go-github-com-gabriel-vasile-mimetype): New
  variable.

Change-Id: Icb1624eb9a890b6f711dacf5ff80f15b041f3b7d
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Diffstat (limited to 'gnu/packages/golang-xyz.scm')
-rw-r--r--gnu/packages/golang-xyz.scm53
1 files changed, 53 insertions, 0 deletions
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index c58228ec44..48f56c4244 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr>
+;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages golang-check))
 
 ;;; Commentary:
@@ -56,6 +58,57 @@
 atimes for files.")
     (license license:expat)))
 
+(define-public go-github-com-gabriel-vasile-mimetype
+  (package
+    (name "go-github-com-gabriel-vasile-mimetype")
+    (version "1.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gabriel-vasile/mimetype")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11swnjczhrza0xi8q2wlk056nnbcghm44vqs52zfv6rwqvy6imhj"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.20
+      #:import-path "github.com/gabriel-vasile/mimetype"
+      #:phases #~(modify-phases %standard-phases
+                   (add-before 'check 'add-supported-mimes-md
+                     (lambda* (#:key import-path #:allow-other-keys)
+                       ;; This file needs to be available for writing during the
+                       ;; tests otherwise they will fail.
+                       (let ((file (format #f "src/~a/supported_mimes.md"
+                                           import-path)))
+                         (invoke "touch" file)
+                         (chmod file #o644)))))))
+    (propagated-inputs (list go-golang-org-x-net))
+    (home-page "https://github.com/gabriel-vasile/mimetype")
+    (synopsis "Golang library for media type and file extension detection")
+    (description
+     "This package provides a Golang module that uses magic number signatures
+to detect the MIME type of a file.
+
+Main features:
+@itemize
+@item Fast and precise MIME type and file extension detection.
+@item Supports
+@url{https://github.com/gabriel-vasile/mimetype/blob/master/supported_mimes.md,
+many MIME types}.
+@item Allows to
+@url{https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-Extend,
+extend} with other file formats.
+@item Common file formats are prioritized.
+@item
+@url{https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-TextVsBinary,
+Differentiation between text and binary files}.
+@item Safe for concurrent usage.
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-matryer-try
   (package
     (name "go-github-com-matryer-try")