summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2020-08-08 22:51:16 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2020-08-09 17:19:17 +0300
commit0b7442491efb1a1cfe3b7e736bf94aec7fef9768 (patch)
tree779a009f40aac2410407f1b2e7e9f6c725fcea7b /gnu
parent75a0cab4a1e49ea46c1cace63efa40c3ad94143a (diff)
downloadguix-patches-0b7442491efb1a1cfe3b7e736bf94aec7fef9768.tar
guix-patches-0b7442491efb1a1cfe3b7e736bf94aec7fef9768.tar.gz
gnu: Add go-github-com-imdario-mergo.
* gnu/packages/golang.scm (go-github-com-imdario-mergo): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/golang.scm29
1 files changed, 29 insertions, 0 deletions
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index c64d5dcfc5..9c984c83ea 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -4358,4 +4358,33 @@ semantic versions. Specifically it provides the ability to:
(description "Go package xstrings is a collection of string functions,
which are widely used in other languages but absent in Go package strings.")
(license license:expat)))
+
+(define-public go-github-com-imdario-mergo
+ (package
+ (name "go-github-com-imdario-mergo")
+ (version "0.3.10")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/imdario/mergo")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "09h765p8yby9r8s0a3hv5kl8n2i382mda76wmvk48w1cc1w9s92p"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/imdario/mergo"))
+ (native-inputs
+ `(("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
+ (home-page "https://github.com/imdario/mergo/")
+ (synopsis "Helper to merge structs and maps in Golang")
+ (description "Helper to merge structs and maps in Golang. Useful for
+configuration default values, avoiding messy if-statements.
+
+Mergo merges same-type structs and maps by setting default values in
+zero-value fields. Mergo won't merge unexported (private) fields. It will do
+recursively any exported one. It also won't merge structs inside
+maps (because they are not addressable using Go reflection).")
+ (license license:bsd-3)))
(license license:expat)))