GNU bug report logs - #58408
[PATCH] gnu: Add doctl.

Previous Next

Package: guix-patches;

Reported by: Matthew James Kraai <kraai <at> ftbfs.org>

Date: Mon, 10 Oct 2022 09:56:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 58408 in the body.
You can then email your comments to 58408 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Mon, 10 Oct 2022 09:56:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Matthew James Kraai <kraai <at> ftbfs.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 10 Oct 2022 09:56:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Matthew James Kraai <kraai <at> ftbfs.org>
To: guix-patches <at> gnu.org
Cc: Matthew James Kraai <kraai <at> ftbfs.org>
Subject: [PATCH] gnu: Add doctl.
Date: Mon, 10 Oct 2022 02:54:56 -0700
* gnu/packages/doctl.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk                  |  2 ++
 gnu/packages/digitalocean.scm | 58 +++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+)
 create mode 100644 gnu/packages/digitalocean.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index a013647d7e..c7423818b9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -55,6 +55,7 @@
 # Copyright © 2022 Hilton Chain <hako <at> ultrarare.space>
 # Copyright © 2022 Alex Griffin <a <at> ajgrf.com>
 # Copyright © 2022 ( <paren <at> disroot.org>
+# Copyright © 2022 Matthew James Kraai <kraai <at> ftbfs.org>
 #
 # This file is part of GNU Guix.
 #
@@ -206,6 +207,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/dictionaries.scm			\
   %D%/packages/diffoscope.scm			\
   %D%/packages/digest.scm			\
+  %D%/packages/digitalocean.scm			\
   %D%/packages/direct-connect.scm		\
   %D%/packages/disk.scm			\
   %D%/packages/distributed.scm			\
diff --git a/gnu/packages/digitalocean.scm b/gnu/packages/digitalocean.scm
new file mode 100644
index 0000000000..f091a1eeb6
--- /dev/null
+++ b/gnu/packages/digitalocean.scm
@@ -0,0 +1,58 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Matthew James Kraai <kraai <at> ftbfs.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages digitalocean)
+  #:use-module ((srfi srfi-1) #:hide (zip))
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages golang)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system go))
+
+(define-public doctl
+  (package
+    (name "doctl")
+    (version "1.83.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/digitalocean/doctl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1narjmj3npd39gxi42k3h4zjyiaq5lvjv31vaxw8slf9h9sjhjh9"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:build-flags '(,(string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
+                                       " -X github.com/digitalocean/doctl.Major="
+                                       (first (string-split version #\.))
+                                       " -X github.com/digitalocean/doctl.Minor="
+                                       (second (string-split version #\.))
+                                       " -X github.com/digitalocean/doctl.Patch="
+                                       (third (string-split version #\.))))
+       #:go ,go-1.19
+       #:import-path "github.com/digitalocean/doctl/cmd/doctl"
+       #:install-source? #f
+       #:unpack-path "github.com/digitalocean/doctl"))
+    (synopsis "Command line client for DigitalOcean")
+    (description
+     "doctl provides a unified command line interface to the DigitalOcean API.")
+    (home-page "https://github.com/digitalocean/doctl")
+    (license license:asl2.0)))
-- 
2.38.0





Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Mon, 10 Oct 2022 11:03:02 GMT) Full text and rfc822 format available.

Message #8 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: "(" <paren <at> disroot.org>
To: "Matthew James Kraai" <kraai <at> ftbfs.org>, <58408 <at> debbugs.gnu.org>
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Mon, 10 Oct 2022 12:01:58 +0100
Hey Matthew,

On Mon Oct 10, 2022 at 10:54 AM BST, Matthew James Kraai wrote:
> * gnu/packages/doctl.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

You sure there's no better place to put it than a new file? Maybe
``gnu/packages/admin.scm''?

> +  #:use-module (guix download)

Since you're using git-fetch, you shouldn't need this module, right?

> +    (arguments
> +     `(#:build-flags '(,(string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
> +                                       " -X github.com/digitalocean/doctl.Major="
> +                                       (first (string-split version #\.))
> +                                       " -X github.com/digitalocean/doctl.Minor="
> +                                       (second (string-split version #\.))
> +                                       " -X github.com/digitalocean/doctl.Patch="
> +                                       (third (string-split version #\.))))

So, this whole thing would be better formatted with "new style" arguments
(using ``list'' and gexps). Like this:

 (arguments
  (list #:build-flags
        #~(list (string-append ...))
        #| et cetera |#))

This would also allow you to remove the unquote in ``,go-1.19''. Note that only
``#:build-flags'' needs the gexp ``#~'' in this arguments list.

> +       #:go ,go-1.19

Might be best to put this above build-flags.

> +       #:import-path "github.com/digitalocean/doctl/cmd/doctl"

The import-path is usually at the top of the arguments list.

> +       #:unpack-path "github.com/digitalocean/doctl"))

And the unpack-path is usually directly after the import-path.

> +    (description
> +     "doctl provides a unified command line interface to the DigitalOcean API.")

Change ``doctl'' to ``@code{doctl}''.

    -- (




Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Mon, 10 Oct 2022 13:21:02 GMT) Full text and rfc822 format available.

Message #11 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: Matthew James Kraai <kraai <at> ftbfs.org>
To: "(" <paren <at> disroot.org>
Cc: 58408 <at> debbugs.gnu.org
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Mon, 10 Oct 2022 06:20:00 -0700
Hi,

On Mon, Oct 10, 2022 at 12:01:58PM +0100, ( wrote:
> Hey Matthew,
> 
> On Mon Oct 10, 2022 at 10:54 AM BST, Matthew James Kraai wrote:
> > * gnu/packages/doctl.scm: New file.
> > * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> 
> You sure there's no better place to put it than a new file? Maybe
> ``gnu/packages/admin.scm''?
> 
> > +  #:use-module (guix download)
> 
> Since you're using git-fetch, you shouldn't need this module, right?
> 
> > +    (arguments
> > +     `(#:build-flags '(,(string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
> > +                                       " -X github.com/digitalocean/doctl.Major="
> > +                                       (first (string-split version #\.))
> > +                                       " -X github.com/digitalocean/doctl.Minor="
> > +                                       (second (string-split version #\.))
> > +                                       " -X github.com/digitalocean/doctl.Patch="
> > +                                       (third (string-split version #\.))))
> 
> So, this whole thing would be better formatted with "new style" arguments
> (using ``list'' and gexps). Like this:
> 
>  (arguments
>   (list #:build-flags
>         #~(list (string-append ...))
>         #| et cetera |#))
> 
> This would also allow you to remove the unquote in ``,go-1.19''. Note that only
> ``#:build-flags'' needs the gexp ``#~'' in this arguments list.
> 
> > +       #:go ,go-1.19
> 
> Might be best to put this above build-flags.
> 
> > +       #:import-path "github.com/digitalocean/doctl/cmd/doctl"
> 
> The import-path is usually at the top of the arguments list.
> 
> > +       #:unpack-path "github.com/digitalocean/doctl"))
> 
> And the unpack-path is usually directly after the import-path.
> 
> > +    (description
> > +     "doctl provides a unified command line interface to the DigitalOcean API.")
> 
> Change ``doctl'' to ``@code{doctl}''.
> 
>     -- (

Thank you for all of the suggestions.  How about the following patch instead?

-- 
Matt

From f31936b941b1db1a4dfe8e07270ef4b004c33c54 Mon Sep 17 00:00:00 2001
From: Matthew James Kraai <kraai <at> ftbfs.org>
Date: Sun, 9 Oct 2022 05:07:23 -0700
Subject: [PATCH] gnu: Add doctl.

* gnu/packages/admin.scm (doctl): New variable.
---
 gnu/packages/admin.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 13d582403b..be80713f52 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -54,6 +54,7 @@
 ;;; Copyright © 2022 Petr Hodina <phodina <at> protonmail.com>
 ;;; Copyright © 2022 Andreas Rammhold <andreas <at> rammhold.de>
 ;;; Copyright © 2022 ( <paren <at> disroot.org>
+;;; Copyright © 2022 Matthew James Kraai <kraai <at> ftbfs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5596,3 +5597,36 @@ (define-public rex
 several hosts in succession or in parallel.  It can also be used to copy a
 file or files to several hosts.")
     (license license:gpl3+)))
+
+(define-public doctl
+  (package
+    (name "doctl")
+    (version "1.83.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/digitalocean/doctl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1narjmj3npd39gxi42k3h4zjyiaq5lvjv31vaxw8slf9h9sjhjh9"))))
+    (build-system go-build-system)
+    (arguments
+     (list #:import-path "github.com/digitalocean/doctl/cmd/doctl"
+           #:unpack-path "github.com/digitalocean/doctl"
+           #:go go-1.19
+           #:build-flags
+           #~(list (string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
+                                  " -X github.com/digitalocean/doctl.Major="
+                                  (car (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Minor="
+                                  (cadr (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Patch="
+                                  (caddr (string-split #$version #\.))))
+           #:install-source? #f))
+    (synopsis "Command line client for DigitalOcean")
+    (description
+     "@code{doctl} provides a unified command line interface to the DigitalOcean API.")
+    (home-page "https://github.com/digitalocean/doctl")
+    (license license:asl2.0)))
-- 
2.38.0





Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Mon, 10 Oct 2022 15:22:02 GMT) Full text and rfc822 format available.

Message #14 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: "(" <paren <at> disroot.org>
To: "Matthew James Kraai" <kraai <at> ftbfs.org>
Cc: 58408 <at> debbugs.gnu.org
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Mon, 10 Oct 2022 16:21:33 +0100
Hey,

Mostly LGTM, but it looks like I forgot something:

On Mon Oct 10, 2022 at 2:20 PM BST, Matthew James Kraai wrote:
> +    (home-page "https://github.com/digitalocean/doctl")

``home-page'' is generally put before ``synopsis''.

    -- (




Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Tue, 11 Oct 2022 13:37:02 GMT) Full text and rfc822 format available.

Message #17 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: Matthew James Kraai <kraai <at> ftbfs.org>
To: "(" <paren <at> disroot.org>
Cc: 58408 <at> debbugs.gnu.org
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Tue, 11 Oct 2022 06:36:49 -0700
Hi,

On Mon, Oct 10, 2022 at 04:21:33PM +0100, ( wrote:
> Mostly LGTM, but it looks like I forgot something:
> 
> On Mon Oct 10, 2022 at 2:20 PM BST, Matthew James Kraai wrote:
> > +    (home-page "https://github.com/digitalocean/doctl")
> 
> ``home-page'' is generally put before ``synopsis''.

Thanks again.  How about the following patch?

-- 
Matt

From 1e60a3b717e8b641217f2b9d6f2cad71faa24418 Mon Sep 17 00:00:00 2001
From: Matthew James Kraai <kraai <at> ftbfs.org>
Date: Sun, 9 Oct 2022 05:07:23 -0700
Subject: [PATCH] gnu: Add doctl.

* gnu/packages/admin.scm (doctl): New variable.
---
 gnu/packages/admin.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 13d582403b..2e3395052c 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -54,6 +54,7 @@
 ;;; Copyright © 2022 Petr Hodina <phodina <at> protonmail.com>
 ;;; Copyright © 2022 Andreas Rammhold <andreas <at> rammhold.de>
 ;;; Copyright © 2022 ( <paren <at> disroot.org>
+;;; Copyright © 2022 Matthew James Kraai <kraai <at> ftbfs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5596,3 +5597,36 @@ (define-public rex
 several hosts in succession or in parallel.  It can also be used to copy a
 file or files to several hosts.")
     (license license:gpl3+)))
+
+(define-public doctl
+  (package
+    (name "doctl")
+    (version "1.83.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/digitalocean/doctl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1narjmj3npd39gxi42k3h4zjyiaq5lvjv31vaxw8slf9h9sjhjh9"))))
+    (build-system go-build-system)
+    (arguments
+     (list #:import-path "github.com/digitalocean/doctl/cmd/doctl"
+           #:unpack-path "github.com/digitalocean/doctl"
+           #:go go-1.19
+           #:build-flags
+           #~(list (string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
+                                  " -X github.com/digitalocean/doctl.Major="
+                                  (car (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Minor="
+                                  (cadr (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Patch="
+                                  (caddr (string-split #$version #\.))))
+           #:install-source? #f))
+    (home-page "https://github.com/digitalocean/doctl")
+    (synopsis "Command line client for DigitalOcean")
+    (description
+     "@code{doctl} provides a unified command line interface to the DigitalOcean API.")
+    (license license:asl2.0)))
-- 
2.38.0





Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Tue, 11 Oct 2022 13:45:02 GMT) Full text and rfc822 format available.

Message #20 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: "(" <paren <at> disroot.org>
To: "Matthew James Kraai" <kraai <at> ftbfs.org>
Cc: 58408 <at> debbugs.gnu.org
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Tue, 11 Oct 2022 14:41:28 +0100
LGTM! :D

    -- (




Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Wed, 12 Oct 2022 13:09:02 GMT) Full text and rfc822 format available.

Message #23 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: Matthew James Kraai <kraai <at> ftbfs.org>
To: 58408 <at> debbugs.gnu.org
Cc: "\(" <paren <at> disroot.org>
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Wed, 12 Oct 2022 06:08:06 -0700
Hi,

Here's an updated patch that installs autocompletion scripts for Bash, fish, and Zsh.

-- 
Matt

From 4e856170fce977faea180f432d705772eb3ed368 Mon Sep 17 00:00:00 2001
From: Matthew James Kraai <kraai <at> ftbfs.org>
Date: Sun, 9 Oct 2022 05:07:23 -0700
Subject: [PATCH] gnu: Add doctl.

* gnu/packages/admin.scm (doctl): New variable.
---
 gnu/packages/admin.scm | 51 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 13d582403b..b92c03b567 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -54,6 +54,7 @@
 ;;; Copyright © 2022 Petr Hodina <phodina <at> protonmail.com>
 ;;; Copyright © 2022 Andreas Rammhold <andreas <at> rammhold.de>
 ;;; Copyright © 2022 ( <paren <at> disroot.org>
+;;; Copyright © 2022 Matthew James Kraai <kraai <at> ftbfs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5596,3 +5597,53 @@ (define-public rex
 several hosts in succession or in parallel.  It can also be used to copy a
 file or files to several hosts.")
     (license license:gpl3+)))
+
+(define-public doctl
+  (package
+    (name "doctl")
+    (version "1.83.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/digitalocean/doctl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1narjmj3npd39gxi42k3h4zjyiaq5lvjv31vaxw8slf9h9sjhjh9"))))
+    (build-system go-build-system)
+    (arguments
+     (list #:import-path "github.com/digitalocean/doctl/cmd/doctl"
+           #:unpack-path "github.com/digitalocean/doctl"
+           #:go go-1.19
+           #:build-flags
+           #~(list (string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
+                                  " -X github.com/digitalocean/doctl.Major="
+                                  (car (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Minor="
+                                  (cadr (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Patch="
+                                  (caddr (string-split #$version #\.))))
+           #:install-source? #f
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'install-completions
+                 (lambda _
+                   (let ((install-completion
+                          (lambda (shell file)
+                            (let ((file (string-append #$output file)))
+                              (mkdir-p (dirname file))
+                              (with-output-to-file file
+                                (lambda _
+                                  (invoke (string-append #$output "/bin/doctl")
+                                          "completion" shell)))))))
+                     (install-completion "bash" "/etc/bash_completion.d/doctl")
+                     (install-completion "fish"
+                                         "/etc/fish/completions/doctl.fish")
+                     (install-completion "zsh"
+                                         "/etc/zsh/site-functions/_doctl")))))))
+    (home-page "https://github.com/digitalocean/doctl")
+    (synopsis "Command line client for DigitalOcean")
+    (description
+     "@code{doctl} provides a unified command line interface to the DigitalOcean API.")
+    (license license:asl2.0)))
-- 
2.38.0





Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Wed, 12 Oct 2022 15:03:01 GMT) Full text and rfc822 format available.

Message #26 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: "(" <paren <at> disroot.org>
To: "Matthew James Kraai" <kraai <at> ftbfs.org>, <58408 <at> debbugs.gnu.org>
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Wed, 12 Oct 2022 16:01:32 +0100
Hello,

On Wed Oct 12, 2022 at 2:08 PM BST, Matthew James Kraai wrote:
> Here's an updated patch that installs autocompletion scripts for Bash, fish, and Zsh.

Nice catch :)

> +                 (lambda _
> +                   (let ((install-completion
> +                          (lambda (shell file)
> +                            (let ((file (string-append #$output file)))
> +                              (mkdir-p (dirname file))
> +                              (with-output-to-file file
> +                                (lambda _
> +                                  (invoke (string-append #$output "/bin/doctl")
> +                                          "completion" shell)))))))
> +                     (install-completion "bash" "/etc/bash_completion.d/doctl")
> +                     (install-completion "fish"
> +                                         "/etc/fish/completions/doctl.fish")
> +                     (install-completion "zsh"
> +                                         "/etc/zsh/site-functions/_doctl")))))))

I think it might be better to use ``(define (...) ...)'' instead of
``(let ((... (lambda ...))) ...)'' here.

  -- (




Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Thu, 13 Oct 2022 01:03:01 GMT) Full text and rfc822 format available.

Message #29 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: Matthew James Kraai <kraai <at> ftbfs.org>
To: "(" <paren <at> disroot.org>
Cc: 58408 <at> debbugs.gnu.org
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Wed, 12 Oct 2022 18:02:45 -0700
Hi,

On Wed, Oct 12, 2022 at 04:01:32PM +0100, ( wrote:
> Hello,
> 
> On Wed Oct 12, 2022 at 2:08 PM BST, Matthew James Kraai wrote:
> > Here's an updated patch that installs autocompletion scripts for Bash, fish, and Zsh.
> 
> Nice catch :)
> 
> > +                 (lambda _
> > +                   (let ((install-completion
> > +                          (lambda (shell file)
> > +                            (let ((file (string-append #$output file)))
> > +                              (mkdir-p (dirname file))
> > +                              (with-output-to-file file
> > +                                (lambda _
> > +                                  (invoke (string-append #$output "/bin/doctl")
> > +                                          "completion" shell)))))))
> > +                     (install-completion "bash" "/etc/bash_completion.d/doctl")
> > +                     (install-completion "fish"
> > +                                         "/etc/fish/completions/doctl.fish")
> > +                     (install-completion "zsh"
> > +                                         "/etc/zsh/site-functions/_doctl")))))))
> 
> I think it might be better to use ``(define (...) ...)'' instead of
> ``(let ((... (lambda ...))) ...)'' here.

Thanks for the suggestion.  How about the following patch?

-- 
Matt

From f1bf9f77084a5543975364c304bcf9574abffb5b Mon Sep 17 00:00:00 2001
From: Matthew James Kraai <kraai <at> ftbfs.org>
Date: Sun, 9 Oct 2022 05:07:23 -0700
Subject: [PATCH] gnu: Add doctl.

* gnu/packages/admin.scm (doctl): New variable.
---
 gnu/packages/admin.scm | 50 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 13d582403b..bc8b7e9efa 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -54,6 +54,7 @@
 ;;; Copyright © 2022 Petr Hodina <phodina <at> protonmail.com>
 ;;; Copyright © 2022 Andreas Rammhold <andreas <at> rammhold.de>
 ;;; Copyright © 2022 ( <paren <at> disroot.org>
+;;; Copyright © 2022 Matthew James Kraai <kraai <at> ftbfs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5596,3 +5597,52 @@ (define-public rex
 several hosts in succession or in parallel.  It can also be used to copy a
 file or files to several hosts.")
     (license license:gpl3+)))
+
+(define-public doctl
+  (package
+    (name "doctl")
+    (version "1.83.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/digitalocean/doctl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1narjmj3npd39gxi42k3h4zjyiaq5lvjv31vaxw8slf9h9sjhjh9"))))
+    (build-system go-build-system)
+    (arguments
+     (list #:import-path "github.com/digitalocean/doctl/cmd/doctl"
+           #:unpack-path "github.com/digitalocean/doctl"
+           #:go go-1.19
+           #:build-flags
+           #~(list (string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
+                                  " -X github.com/digitalocean/doctl.Major="
+                                  (car (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Minor="
+                                  (cadr (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Patch="
+                                  (caddr (string-split #$version #\.))))
+           #:install-source? #f
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'install-completions
+                 (lambda _
+                   (define (install-completion shell file)
+                     (let ((file (string-append #$output file)))
+                       (mkdir-p (dirname file))
+                       (with-output-to-file file
+                         (lambda _
+                           (invoke (string-append #$output "/bin/doctl")
+                                   "completion" shell)))))
+                   (install-completion "bash" "/etc/bash_completion.d/doctl")
+                   (install-completion "fish"
+                                       "/etc/fish/completions/doctl.fish")
+                   (install-completion "zsh"
+                                       "/etc/zsh/site-functions/_doctl"))))))
+    (home-page "https://github.com/digitalocean/doctl")
+    (synopsis "Command line client for DigitalOcean")
+    (description
+     "@code{doctl} provides a unified command line interface to the DigitalOcean API.")
+    (license license:asl2.0)))
-- 
2.38.0





Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Thu, 13 Oct 2022 06:12:02 GMT) Full text and rfc822 format available.

Message #32 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: "(" <paren <at> disroot.org>
To: "Matthew James Kraai" <kraai <at> ftbfs.org>
Cc: 58408 <at> debbugs.gnu.org
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Thu, 13 Oct 2022 07:11:47 +0100
All LGTM now :)

    -- (




Information forwarded to guix-patches <at> gnu.org:
bug#58408; Package guix-patches. (Fri, 21 Oct 2022 03:39:02 GMT) Full text and rfc822 format available.

Message #35 received at 58408 <at> debbugs.gnu.org (full text, mbox):

From: Matthew James Kraai <kraai <at> ftbfs.org>
To: 58408 <at> debbugs.gnu.org
Subject: Re: [bug#58408] [PATCH] gnu: Add doctl.
Date: Thu, 20 Oct 2022 20:38:34 -0700
Hi,

Here's an updated patch that installs the latest version, 1.84.1.

-- 
Matt

From 53ebbadf664dda942b4d749803b5ece4e4aef0f6 Mon Sep 17 00:00:00 2001
From: Matthew James Kraai <kraai <at> ftbfs.org>
Date: Sun, 9 Oct 2022 05:07:23 -0700
Subject: [PATCH] gnu: Add doctl.

* gnu/packages/admin.scm (doctl): New variable.
---
 gnu/packages/admin.scm | 50 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 13d582403b..19189838df 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -54,6 +54,7 @@
 ;;; Copyright © 2022 Petr Hodina <phodina <at> protonmail.com>
 ;;; Copyright © 2022 Andreas Rammhold <andreas <at> rammhold.de>
 ;;; Copyright © 2022 ( <paren <at> disroot.org>
+;;; Copyright © 2022 Matthew James Kraai <kraai <at> ftbfs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5596,3 +5597,52 @@ (define-public rex
 several hosts in succession or in parallel.  It can also be used to copy a
 file or files to several hosts.")
     (license license:gpl3+)))
+
+(define-public doctl
+  (package
+    (name "doctl")
+    (version "1.84.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/digitalocean/doctl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1jmqvz1rdqrsr4l0bv3ik1jla0xnbdvcmnw9892acvfs3wsmliyc"))))
+    (build-system go-build-system)
+    (arguments
+     (list #:import-path "github.com/digitalocean/doctl/cmd/doctl"
+           #:unpack-path "github.com/digitalocean/doctl"
+           #:go go-1.19
+           #:build-flags
+           #~(list (string-append "-ldflags=-X github.com/digitalocean/doctl.Label=release"
+                                  " -X github.com/digitalocean/doctl.Major="
+                                  (car (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Minor="
+                                  (cadr (string-split #$version #\.))
+                                  " -X github.com/digitalocean/doctl.Patch="
+                                  (caddr (string-split #$version #\.))))
+           #:install-source? #f
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'install-completions
+                 (lambda _
+                   (define (install-completion shell file)
+                     (let ((file (string-append #$output file)))
+                       (mkdir-p (dirname file))
+                       (with-output-to-file file
+                         (lambda _
+                           (invoke (string-append #$output "/bin/doctl")
+                                   "completion" shell)))))
+                   (install-completion "bash" "/etc/bash_completion.d/doctl")
+                   (install-completion "fish"
+                                       "/etc/fish/completions/doctl.fish")
+                   (install-completion "zsh"
+                                       "/etc/zsh/site-functions/_doctl"))))))
+    (home-page "https://github.com/digitalocean/doctl")
+    (synopsis "Command line client for DigitalOcean")
+    (description
+     "@code{doctl} provides a unified command line interface to the DigitalOcean API.")
+    (license license:asl2.0)))
-- 
2.38.0





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Sun, 23 Oct 2022 13:08:01 GMT) Full text and rfc822 format available.

Notification sent to Matthew James Kraai <kraai <at> ftbfs.org>:
bug acknowledged by developer. (Sun, 23 Oct 2022 13:08:02 GMT) Full text and rfc822 format available.

Message #40 received at 58408-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Matthew James Kraai <kraai <at> ftbfs.org>
Cc: 58408-done <at> debbugs.gnu.org
Subject: Re: bug#58408: [PATCH] gnu: Add doctl.
Date: Sun, 23 Oct 2022 15:07:41 +0200
Hi,

Matthew James Kraai <kraai <at> ftbfs.org> skribis:

>>From 53ebbadf664dda942b4d749803b5ece4e4aef0f6 Mon Sep 17 00:00:00 2001
> From: Matthew James Kraai <kraai <at> ftbfs.org>
> Date: Sun, 9 Oct 2022 05:07:23 -0700
> Subject: [PATCH] gnu: Add doctl.
>
> * gnu/packages/admin.scm (doctl): New variable.

Applied, thank you, and thanks unmatched-paren for reviewing!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 21 Nov 2022 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 207 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.