summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorHartmut Goebel <h.goebel@crazy-compilers.com>2021-01-01 19:10:34 +0100
committerHartmut Goebel <h.goebel@crazy-compilers.com>2021-01-27 16:43:51 +0100
commitd8aa4444688ce244d2556630c3f7cfe739e01310 (patch)
treea99e950b44e197c36df73605b2a8978c95b52760 /gnu
parent3ab7e15cc5802251d3a668d6eed9a12eb6befdb3 (diff)
gnu: Add ugrep.
* gnu/packages/search.scm (ugrep): New Variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/search.scm59
1 files changed, 59 insertions, 0 deletions
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index e261e64a7f..d458747872 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +27,7 @@
#:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11 perl-license))
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
@@ -35,7 +37,9 @@
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages less)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pdf)
#:use-module (gnu packages python)
@@ -413,4 +417,59 @@ online libraries. It provides fast search of document text and
bibliographic data and simple document and bibtex retrieval.")
(license gpl3+)))
+(define-public ugrep
+ (package
+ (name "ugrep")
+ (version "3.1.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Genivia/ugrep")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "1ydnpdhn1mp2pnbqzvwabrp573626k89kbv97fax6y1bz2pamrg4"))
+ (file-name (string-append name "-" version "-checkout"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "bin") ;; pre-build executables
+ (for-each delete-file (find-files "tests" "^archive\\..*"))
+ (for-each delete-file (find-files "tests" "^.*\\.pdf$"))
+ (for-each delete-file (find-files "tests" "^.*\\.class$"))
+ #t))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("bzip2" ,bzip2)
+ ("less" ,less)
+ ("lz4" ,lz4)
+ ("lzip" ,lzip) ;; lzma
+ ("pcre2" ,pcre2)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f ;; No script for re-building the binary test input-files
+ #:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'check-setup
+ (lambda _
+ ;; unpatch shepengs in tests
+ (substitute* '("tests/Hello.bat"
+ "tests/Hello.sh")
+ (("#!/gnu/store/.*/bin/sh") "#!/bin/sh")))))))
+ (home-page "https://github.com/Genivia/ugrep/")
+ (synopsis "Faster grep with an interactive query UI")
+ (description "Ugrep is a ultra fast searcher of file systems, text
+and binary files, source code, archives, compressed files, documents, and
+more.
+
+While still being compatible with the standard GNU/BSD grep command-line
+options, ugrep supports fuzzy search as well as structured and (adjustable)
+colored output, piped through \"less\" for pagination. An interactive query
+UI allows refinement and has a built-in help (press F1). Ugrep implements
+multi-threaded and other techniques to speed up search, pattern-matching and
+decompression. Many pre-defined regexps ease searching e.g. C typdefs or XML
+attributes. Results can be output in several structured or self-defined
+formats.")
+ (license bsd-3)))
+
;;; search.scm ends here