gnu: Add mongo-tools.
* gnu/packages/databases.scm (mongo-tools): New variable.
This commit is contained in:
parent
cf71edee5a
commit
33c88fcb25
|
@ -68,6 +68,7 @@
|
||||||
#:use-module (gnu packages gnupg)
|
#:use-module (gnu packages gnupg)
|
||||||
#:use-module (gnu packages guile)
|
#:use-module (gnu packages guile)
|
||||||
#:use-module (gnu packages time)
|
#:use-module (gnu packages time)
|
||||||
|
#:use-module (gnu packages golang)
|
||||||
#:use-module (gnu packages jemalloc)
|
#:use-module (gnu packages jemalloc)
|
||||||
#:use-module (gnu packages language)
|
#:use-module (gnu packages language)
|
||||||
#:use-module (gnu packages libevent)
|
#:use-module (gnu packages libevent)
|
||||||
|
@ -87,6 +88,8 @@
|
||||||
#:use-module (gnu packages serialization)
|
#:use-module (gnu packages serialization)
|
||||||
#:use-module (gnu packages statistics)
|
#:use-module (gnu packages statistics)
|
||||||
#:use-module (gnu packages tcl)
|
#:use-module (gnu packages tcl)
|
||||||
|
#:use-module (gnu packages terminals)
|
||||||
|
#:use-module (gnu packages textutils)
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages valgrind)
|
#:use-module (gnu packages valgrind)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
|
@ -2601,3 +2604,86 @@ transforms idiomatic python function calls to well-formed SQL queries.")
|
||||||
|
|
||||||
(define-public python2-sql
|
(define-public python2-sql
|
||||||
(package-with-python2 python-sql))
|
(package-with-python2 python-sql))
|
||||||
|
|
||||||
|
(define-public mongo-tools
|
||||||
|
(package
|
||||||
|
(name "mongo-tools")
|
||||||
|
(version "3.4.0")
|
||||||
|
(source
|
||||||
|
(origin (method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/mongodb/mongo-tools")
|
||||||
|
(commit (string-append "r" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"095nc57k4m4iyim0x3fgpw681qba123iyl4qz7xysbv5ngbr19mc"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:unpack-path "github.com/mongodb"
|
||||||
|
#:import-path "github.com/mongodb/mongo-tools"
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'delete-bundled-source-code
|
||||||
|
(lambda _
|
||||||
|
(delete-file-recursively
|
||||||
|
"src/github.com/mongodb/mongo-tools/vendor")
|
||||||
|
#t))
|
||||||
|
|
||||||
|
;; We don't need to install the source code for end-user application
|
||||||
|
(delete 'install-source)
|
||||||
|
|
||||||
|
(replace 'build
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let build ((tools
|
||||||
|
'("bsondump" "mongodump" "mongoexport" "mongofiles"
|
||||||
|
"mongoimport" "mongooplog" "mongorestore"
|
||||||
|
"mongostat" "mongotop")))
|
||||||
|
(if (null? tools)
|
||||||
|
#t
|
||||||
|
(if (let* ((tool (car tools))
|
||||||
|
(command
|
||||||
|
`("go" "install" "-v"
|
||||||
|
"-tags=\"ssl sasl\""
|
||||||
|
"-ldflags"
|
||||||
|
"-extldflags=-Wl,-z,now,-z,relro"
|
||||||
|
,(string-append
|
||||||
|
"src/github.com/mongodb/mongo-tools/"
|
||||||
|
tool "/main/" tool ".go"))))
|
||||||
|
(simple-format #t "build: running ~A\n"
|
||||||
|
(string-join command))
|
||||||
|
(zero? (apply system* command)))
|
||||||
|
(build (cdr tools))
|
||||||
|
#f))))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("go-github.com-howeyc-gopass" ,go-github.com-howeyc-gopass)
|
||||||
|
("go-github.com-jessevdk-go-flags" ,go-github.com-jessevdk-go-flags)
|
||||||
|
("go-golang.org-x-crypto-ssh-terminal" ,go-golang.org-x-crypto-ssh-terminal)
|
||||||
|
("go-gopkg.in-mgo.v2" ,go-gopkg.in-mgo.v2)
|
||||||
|
("go-gopkg.in-tomb.v2" ,go-gopkg.in-tomb.v2)
|
||||||
|
("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
|
||||||
|
(home-page "https://github.com/mongodb/mongo-tools")
|
||||||
|
(synopsis "Various tools for interacting with MongoDB and BSON")
|
||||||
|
(description
|
||||||
|
"This package includes a collection of tools related to MongoDB.
|
||||||
|
@table @code
|
||||||
|
@item bsondump
|
||||||
|
Display BSON files in a human-readable format
|
||||||
|
@item mongoimport
|
||||||
|
Convert data from JSON, TSV or CSV and insert them into a collection
|
||||||
|
@item mongoexport
|
||||||
|
Write an existing collection to CSV or JSON format
|
||||||
|
@item mongodump/mongorestore
|
||||||
|
Dump MongoDB backups to disk in the BSON format
|
||||||
|
@item mongorestore
|
||||||
|
Read MongoDB backups in the BSON format, and restore them to a live database
|
||||||
|
@item mongostat
|
||||||
|
Monitor live MongoDB servers, replica sets, or sharded clusters
|
||||||
|
@item mongofiles
|
||||||
|
Read, write, delete, or update files in GridFS
|
||||||
|
@item mongooplog
|
||||||
|
Replay oplog entries between MongoDB servers
|
||||||
|
@item mongotop
|
||||||
|
Monitor read/write activity on a mongo server
|
||||||
|
@end table")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
Loading…
Reference in New Issue