unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Christopher Baines <mail@cbaines.net>
To: 30214@debbugs.gnu.org
Subject: [bug#30214] [PATCH 10/10] gnu: Add mongo-tools.
Date: Sat, 27 Jan 2018 15:00:27 +0000	[thread overview]
Message-ID: <20180127150027.27150-10-mail@cbaines.net> (raw)
In-Reply-To: <20180127150027.27150-1-mail@cbaines.net>

* gnu/packages/databases.scm (mongo-tools): New variable.
---
 gnu/packages/databases.scm | 87 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index fabfbfe5b..8004a44dd 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages time)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages language)
   #:use-module (gnu packages libevent)
@@ -87,6 +88,8 @@
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages terminals)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages xml)
@@ -2599,3 +2602,87 @@ transforms idiomatic python function calls to well-formed SQL queries.")
 
 (define-public python2-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
+     `(#:tests? #f
+       #: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)))
-- 
2.15.1

  parent reply	other threads:[~2018-01-27 15:01 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-22 20:51 [bug#30214] [PATCH]: Add mongo-tools Christopher Baines
2018-01-22 21:08 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
2018-01-22 21:53     ` Leo Famulari
2018-01-23 19:45       ` Christopher Baines
2018-01-23 20:51         ` Leo Famulari
2018-01-27 15:16           ` Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
2018-01-22 21:54     ` Leo Famulari
2018-01-23 19:51       ` Christopher Baines
2018-01-23 20:29         ` Leo Famulari
2018-01-23 20:34           ` Christopher Baines
2018-01-23 20:44             ` Leo Famulari
2018-01-27 15:15               ` Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
2018-01-22 21:57     ` Leo Famulari
2018-01-23 19:54       ` Christopher Baines
2018-01-23 20:30         ` Leo Famulari
2018-01-22 21:08   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
2018-01-22 21:08   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
2018-01-22 22:01     ` Leo Famulari
2018-01-23 19:59       ` Christopher Baines
2018-01-23 20:44         ` Leo Famulari
2018-01-22 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
2018-01-23 19:42     ` Christopher Baines
2018-01-22 21:51 ` [bug#30214] [PATCH]: Add mongo-tools Leo Famulari
2018-01-23 19:41   ` Christopher Baines
2018-01-23 20:21 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
2018-01-23 20:21   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
2018-01-23 20:22   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
2018-01-23 20:22   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
2018-01-23 20:22   ` [bug#30214] [PATCH 10/10] gnu: Add mongo-tools Christopher Baines
2018-01-27 15:00 ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 02/10] gnu: Add go-github.com-howeyc-gopass Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 03/10] gnu: Add go-github.com-jessevdk-go-flags Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 04/10] gnu: Add go-gopkg.in-check.v1 Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 05/10] gnu: Add daemontools Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 06/10] gnu: Add go-gopkg.in-mgo.v2 Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 07/10] gnu: Add go-gopkg.in-tomb.v2 Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 08/10] gnu: Add go-github.com-mattn-go-runewidth Christopher Baines
2018-01-27 15:00   ` [bug#30214] [PATCH 09/10] gnu: Add go-github.com-nsf-termbox-go Christopher Baines
2018-01-27 15:00   ` Christopher Baines [this message]
2018-01-29 21:52   ` [bug#30214] [PATCH 01/10] gnu: Add go-golang.org-x-crypto-ssh-terminal Leo Famulari
2018-01-30  7:49     ` bug#30214: " Christopher Baines

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180127150027.27150-10-mail@cbaines.net \
    --to=mail@cbaines.net \
    --cc=30214@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).