From bbf32c53a2402f6f123d00d2e5ece9efdbf10504 Mon Sep 17 00:00:00 2001 From: Michael Rohleder Date: Tue, 13 Sep 2022 11:29:23 +0200 Subject: [PATCH] gnu: go-ipfs: Install bash completion. * gnu/packages/ipfs.scm (go-ipfs)[arguments]: Use gexp. Add 'install-bashcompletion phase to install bash completion. --- gnu/packages/ipfs.scm | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index ccc36007b4..d1e04c3ae0 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2019, 2020 Martin Becze -;;; Copyright © 2020, 2021 Michael Rohleder +;;; Copyright © 2020, 2021, 2022 Michael Rohleder ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +22,7 @@ (define-module (gnu packages ipfs) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix download) #:use-module (guix build-system go) @@ -229,10 +230,28 @@ (define-public go-ipfs (file-name (string-append name "-" version "-source")))) (build-system go-build-system) (arguments - `(#:unpack-path "github.com/ipfs/go-ipfs" - #:import-path "github.com/ipfs/go-ipfs/cmd/ipfs")) + (list + #:unpack-path "github.com/ipfs/go-ipfs" + #:import-path "github.com/ipfs/go-ipfs/cmd/ipfs" + #:phases + #~(modify-phases %standard-phases + ;; https://github.com/ipfs/kubo/blob/master/docs/command-completion.md + (add-after 'install 'install-bashcompletion + (lambda _ + (let ((completiondir (string-append #$output + "/etc/bash_completion.d"))) + (mkdir-p completiondir) + (with-output-to-file (string-append completiondir "/ipfs") + (lambda _ + (invoke #$(if (%current-target-system) + "ipfs" + #~(string-append #$output "/bin/ipfs")) + "commands" "completion" "bash"))))))))) (native-inputs - (list python-minimal-wrapper zsh)) + (append (if (%current-target-system) + (list this-package) + '()) + (list python-minimal-wrapper zsh))) (home-page "https://ipfs.io") (synopsis "Go implementation of IPFS, a peer-to-peer hypermedia protocol") (description "IPFS is a global, versioned, peer-to-peer file system. It -- 2.37.3