summaryrefslogtreecommitdiff
path: root/gnu/packages/shellutils.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2021-12-19 15:15:11 +0200
committerEfraim Flashner <efraim@flashner.co.il>2021-12-19 15:15:11 +0200
commit6ccf8ea81f95963c0b7f945648106576008ee105 (patch)
treef39f596e6c3e98ff1e9f1de0ad41c977e9dd37c1 /gnu/packages/shellutils.scm
parentfcaed5b81e893f34d77527fbef389ca628ca882d (diff)
parent9f916d14765b00309c742fcbff0cfabdd10dcf05 (diff)
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/shellutils.scm')
-rw-r--r--gnu/packages/shellutils.scm252
1 files changed, 212 insertions, 40 deletions
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 94b5536df7..7a868f0789 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -10,6 +10,10 @@
;;; Copyright © 2020 aecepoglu <aecepoglu@fastmail.fm>
;;; Copyright © 2020 Dion Mendel <guix@dm9.info>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2021 Wiktor Żelazny <wzelazny@vurv.cz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,18 +44,59 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages libunistring)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages shells)
- #:use-module (gnu packages tmux))
+ #:use-module (gnu packages tmux)
+ #:use-module (gnu packages vim))
+
+(define-public ascii
+ (package
+ (name "ascii")
+ (version "3.18")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.catb.org/~esr/ascii/"
+ "ascii-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0b87vy06s8s3a8q70pqavsbk4m4ff034sdml2xxa6qfsykaj513j"))))
+ (build-system gnu-build-system)
+ (arguments `(#:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" %output))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'install 'create-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man1 (string-append out "/share/man/man1")))
+ (mkdir-p bin)
+ (mkdir-p man1)))))
+ #:tests? #f))
+ (home-page "http://www.catb.org/~esr/ascii/")
+ (synopsis "ASCII name and synonym chart")
+ (description
+ "The @code{ascii} utility provides easy conversion between various byte
+representations and the American Standard Code for Information Interchange
+(ASCII) character table. It knows about a wide variety of hex, binary, octal,
+Teletype mnemonic, ISO/ECMA code point, slang names, XML entity names, and
+other representations. Given any one on the command line, it will try to
+display all others. Called with no arguments it displays a handy small ASCII
+chart.")
+ (license license:bsd-2)))
(define-public boxes
(package
(name "boxes")
- (version "1.3")
+ (version "2.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -60,32 +105,40 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0b12rsynrmkldlwcb62drk33kk0aqwbj10mq5y5x3hjf626gjwsi"))))
+ "1bf5rnfiw04ffs1l17zhbg4wvq2vfn2qbz1xmd250xqj15lysw88"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:make-flags (list (string-append "GLOBALCONF="
(assoc-ref %outputs "out")
"/etc/boxes-config"))
+ #:modules
+ ((ice-9 match)
+ ,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
- (let ((dest (assoc-ref outputs "out")))
- (for-each (lambda (x)
- (install-file (car x)
- (string-append dest "/" (cdr x))))
- '(("src/boxes" . "bin")
- ("doc/boxes.1" . "share/man/man1")
- ("boxes-config" . "etc/")))
- #t))))))
- (native-inputs `(("flex" ,flex) ("bison" ,bison)))
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (match-lambda
+ ((source target)
+ (install-file source
+ (string-append out "/" target))))
+ '(("out/boxes" "bin/")
+ ("doc/boxes.1" "share/man/man1/")
+ ("boxes-config" "etc/")))))))))
+ (native-inputs
+ (list bison flex
+ ;; For the tests.
+ xxd))
+ (inputs
+ (list libunistring pcre2))
+ (home-page "https://boxes.thomasjensen.com")
(synopsis "Command line ASCII boxes")
(description
"This command-line filter program draws ASCII-art boxes around your input
text.")
- (home-page "https://boxes.thomasjensen.com/build.html")
(license license:gpl2)))
(define-public zsh-autosuggestions
@@ -103,13 +156,13 @@ text.")
"1g3pij5qn2j7v7jjac2a63lxd97mcsgw6xq6k5p7835q9fjiid98"))))
(build-system gnu-build-system)
(native-inputs
- `(("ruby" ,ruby)
- ("ruby-byebug" ,ruby-byebug)
- ("ruby-pry" ,ruby-pry)
- ("ruby-rspec" ,ruby-rspec)
- ("ruby-rspec-wait" ,ruby-rspec-wait)
- ("tmux" ,tmux)
- ("zsh" ,zsh)))
+ (list ruby
+ ruby-byebug
+ ruby-pry
+ ruby-rspec
+ ruby-rspec-wait
+ tmux
+ zsh))
(arguments
'(#:phases
(modify-phases %standard-phases
@@ -138,6 +191,57 @@ text.")
as you type.")
(license license:expat)))
+(define-public zsh-syntax-highlighting
+ (package
+ (name "zsh-syntax-highlighting")
+ (version "0.7.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/zsh-users/zsh-syntax-highlighting")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "039g3n59drk818ylcyvkciv8k9mf739cv6v4vis1h9fv9whbcmwl"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ (list zsh))
+ (arguments
+ ;; FIXME: Tests fail when running test regexp
+ ;; there is no pcre module in the Guix zsh package
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("/usr/local") out)
+ (("share/\\$\\(NAME\\)") "share/zsh/plugins/$(NAME)")))))
+ (add-after 'patch-paths 'make-writable
+ (lambda _
+ (for-each make-file-writable
+ '("docs/highlighters.md"
+ "README.md"))))
+ (add-before 'build 'add-all-md
+ (lambda _
+ (invoke "make" "all")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "test")
+ (invoke "make" "perf")))))))
+ (home-page "https://github.com/zsh-users/zsh-syntax-highlighting")
+ (synopsis "Fish shell-like syntax highlighting for Zsh")
+ (description
+ "This package provides syntax highlighting for Zsh. It enables
+highlighting of commands whilst they are typed at a Zsh prompt into an
+interactive terminal. This helps in reviewing commands before running them,
+particularly in catching syntax errors.")
+ (license license:bsd-3)))
+
(define-public sh-z
(package
(name "sh-z")
@@ -226,7 +330,7 @@ between various shells or commands.")
(string-append "\"" libc "/lib/libc.so.6\"\n"))
(("\"df\"")
(string-append "\"" coreutils "/bin/df\"")))))))))
- (inputs `(("coreutils" ,coreutils)))
+ (inputs (list coreutils))
(home-page "https://github.com/andreafrancia/trash-cli")
(synopsis "Trash can management tool")
(description
@@ -239,7 +343,7 @@ are already there.")
(define-public direnv
(package
(name "direnv")
- (version "2.15.2")
+ (version "2.28.0")
(source
(origin (method git-fetch)
(uri (git-reference
@@ -248,18 +352,12 @@ are already there.")
(file-name (git-file-name name version))
(sha256
(base32
- "1y18619pmhfl0vrf4w0h75ybkkwgi9wcb7d9kv4n8drg1xp4aw4w"))))
+ "0yk53jn7wafklixclka17wyjjs2g5giigjr2bd0xzy10nrzwp7c9"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/direnv/direnv"
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'delete-vendor
- (lambda _
- ;; Using a snippet causes issues with the name of the directory,
- ;; so delete the extra source code here.
- (delete-file-recursively "src/github.com/direnv/direnv/vendor")
- #t))
(add-after 'install 'install-manpages
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -277,15 +375,16 @@ are already there.")
;; The following file needs to be writable so it can be
;; modified by the testsuite.
(make-file-writable "test/scenarios/base/.envrc")
- (invoke "make" "test")
+ ;; We need to manually run test because make test
+ ;; tries to use go modules
+ (invoke "go" "test" "./...")
;; Clean up from the tests, especially so that the extra
;; direnv executable that's generated is removed.
(invoke "make" "clean")))
#t)))))
(native-inputs
- `(("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)
- ("go-github-com-direnv-go-dotenv" ,go-github-com-direnv-go-dotenv)
- ("which" ,which)))
+ (list go-github-com-burntsushi-toml go-github-com-direnv-go-dotenv
+ go-github-com-mattn-go-isatty go-golang-org-x-mod which))
(home-page "https://direnv.net/")
(synopsis "Environment switcher for the shell")
(description
@@ -336,7 +435,7 @@ below the current cursor position, scrolling the screen if necessary.")
(define-public hstr
(package
(name "hstr")
- (version "2.3")
+ (version "2.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -345,7 +444,7 @@ below the current cursor position, scrolling the screen if necessary.")
(file-name (git-file-name name version))
(sha256
(base32
- "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y"))))
+ "0xg10jyiq12bcygi6aa9qq9pki7bipdsvsza037p2iqix19jg0x8"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -359,12 +458,9 @@ below the current cursor position, scrolling the screen if necessary.")
(("ncursesw\\/curses.h") "ncurses.h")))
#t)))))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("pkg-config" ,pkg-config)))
+ (list autoconf automake pkg-config))
(inputs
- `(("ncurses" ,ncurses)
- ("readline" ,readline)))
+ (list ncurses readline))
(synopsis "Navigate and search command history with shell history suggest box")
(description "HSTR (HiSToRy) is a command-line utility that brings
improved Bash and Zsh command completion from the history. It aims to make
@@ -398,3 +494,79 @@ the UNIX philosophy, these commands are designed to be composed via pipes. A
large collection of functions such as basename, replace, contains or is_dir
are provided as arguments to these commands.")
(license license:expat)))
+
+(define-public rig
+ (package
+ (name "rig")
+ (version "1.11")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/rig/rig/"
+ version "/rig-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1f3snysjqqlpk2kgvm5p2icrj4lsdymccmn3igkc2f60smqckgq0"))))
+ (build-system gnu-build-system)
+ (arguments `(#:make-flags
+ (list (string-append "CXX=" ,(cxx-for-target))
+ (string-append "PREFIX=" %output))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (substitute* "rig.cc"
+ (("^#include <string>")
+ "#include <cstring>"))
+ (substitute* "Makefile"
+ (("g\\+\\+")
+ "${CXX} -O2")
+ (("install -g 0 -m 755 -o 0 -s rig \\$\\(BINDIR\\)")
+ "install -m 755 -d $(DESTDIR)$(BINDIR)\n\t\
+install -m 755 rig $(DESTDIR)$(BINDIR)/rig")
+ (("install -g 0 -m 644 -o 0 rig.6 \\$\\(MANDIR\\)/man6/rig.6")
+ "install -m 755 -d $(DESTDIR)$(MANDIR)/man6/\n\t\
+install -m 644 rig.6 $(DESTDIR)$(MANDIR)/man6/rig.6")
+ (("install -g 0 -m 755 -o 0 -d \\$\\(DATADIR\\)")
+ "install -m 755 -d $(DESTDIR)$(DATADIR)")
+ (("install -g 0 -m 644 -o 0 data/\\*.idx \\$\\(DATADIR\\)")
+ "install -m 644 data/*.idx $(DESTDIR)$(DATADIR)")))))
+ #:tests? #f))
+ (home-page "http://rig.sourceforge.net")
+ (synopsis "Random identity generator")
+ (description
+ "RIG (Random Identity Generator) generates random, yet real-looking,
+personal data. It is useful if you need to feed a name to a Web site, BBS, or
+real person, and are too lazy to think of one yourself. Also, if the Web
+site/BBS/person you are giving the information to tries to cross-check the
+city, state, zip, or area code, it will check out.")
+ (license license:gpl2+)))
+
+(define-public renameutils
+ (package
+ (name "renameutils")
+ (version "0.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/renameutils/"
+ "renameutils-" version ".tar.gz"))
+ (sha256
+ (base32
+ "18xlkr56jdyajjihcmfqlyyanzyiqqlzbhrm6695mkvw081g1lnb"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ (substitute* "src/Makefile.in"
+ (("\\(\\$bindir\\)") "$(bindir)"))
+ #t))))
+ (build-system gnu-build-system)
+ (inputs
+ (list readline))
+ (home-page "https://www.nongnu.org/renameutils/")
+ (synopsis "File renaming utilities")
+ (description "The file renaming utilities (renameutils for short) are a
+set of programs designed to make renaming of files faster and less cumbersome.
+The file renaming utilities consists of five programs: @command{qmv},
+@command{qcp}, @command{imv}, @command{icp}, and @command{deurlname}.")
+ (license license:gpl3+)))