diff options
author | Andrew Wong <wongandj@icloud.com> | 2025-04-18 00:06:13 -0400 |
---|---|---|
committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-06-26 12:09:48 +0100 |
commit | 03eec7034fa856b77ec5d6c23bb6240efcb23922 (patch) | |
tree | 36cef243b9ecaa4b35e8ee6060b63a3a5115cacb | |
parent | 7b19f8d712847348480735d011c4cab6d9e1c9d0 (diff) |
gnu: trash-cli: Install shell completions.
* gnu/packages/shellutils.scm (trash-cli) [arguments] <#:phases>: Add
'install-completions.
Change-Id: I0b165155d1da8069837bd9b93990dfaf0ff7de52
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
-rw-r--r-- | gnu/packages/shellutils.scm | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 33336e6694..769eea0b29 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -660,6 +660,9 @@ between various shells or commands.") (build-system python-build-system) (arguments (list + #:modules `((guix build python-build-system) + (guix build utils) + (ice-9 match)) #:phases #~(modify-phases %standard-phases (add-before 'build 'fix-setup.py (lambda* (#:key outputs #:allow-other-keys) @@ -674,7 +677,36 @@ between various shells or commands.") (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? - (invoke "pytest"))))))) + (invoke "pytest")))) + (add-before 'wrap 'install-completions + (lambda _ + (for-each + (lambda (binary) + (for-each + (match-lambda + ((shell . path) + (mkdir-p (dirname path)) + (with-output-to-file path + (lambda _ + (invoke + (string-append #$output "/bin/" binary) + "--print-completion" shell))))) + `(("bash" . + ,(format ;format string must be literal + #f "~a/share/bash-completion/completions/~a" + #$output binary)) + ("zsh" . + ,(format #f "~a/share/zsh/site-functions/_~a" + #$output binary)) + ("tcsh" . + ,(format #f "~a/etc/profile.d/~a.completion.csh" + #$output binary))))) + (list "trash" + "trash-empty" + "trash-list" + "trash-put" + "trash-restore" + "trash-rm"))))))) (native-inputs (list python-flexmock python-mock python-parameterized |