aboutsummaryrefslogtreecommitdiff
path: root/build-aux/cuirass/hydra-to-cuirass.scm
blob: 75c77ea35a3b9d5b21cc3de0f65721732d6ea1ce (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.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/>.

;;;
;;; This file defines the conversion of Hydra build jobs to Cuirass build
;;; jobs.  It is meant to be included in other files.
;;;

(use-modules ((guix licenses)
              #:select (license? license-name license-uri license-comment)))

(define (cuirass-jobs store arguments)
  "Return Cuirass jobs."
  (map hydra-job->cuirass-job (hydra-jobs store arguments)))

(define (hydra-job->cuirass-job hydra-job)
  (let ((name (car hydra-job))
        (job ((cdr hydra-job))))
    (lambda _ (acons #:job-name (symbol->string name)
                     (map symbol-alist-entry->keyword-alist-entry job)))))

(define (symbol-alist-entry->keyword-alist-entry entry)
  (cons (symbol->keyword (car entry)) (entry->sexp-entry (cdr entry))))

(define (entry->sexp-entry o)
  (match o
    ((? license?) `((name . (license-name o))
                    (uri . ,(license-uri o))
                    (comment . ,(license-comment o))))
    ((lst ...)
     (map entry->sexp-entry lst))
    (_ o)))
t. * po/guix/POTFILES.in: Add it. * doc/guix.texi (Features): Refer to "guix shell" (Invoking guix package): Likewise. (Development): Likewise. (Invoking guix shell): New node. (Invoking guix environment): Add deprecation warning. (Debugging Build Failures): Use 'guix shell' in examples. (Invoking guix container): Refer to 'guix shell'. (Invoking guix processes, Virtualization Services): Adjust examples to use 'guix shell'. * doc/contributing.texi (Building from Git): Refer to 'guix shell'. * etc/completion/bash/guix: Handle "shell". Ludovic Courtès 2021-10-03bash completion: Fix ‘system’ & ‘container’ subcommands....* etc/completion/bash/guix (_guix_complete): Count words from the innermost command. Tobias Geerinckx-Rice 2021-10-03bash completion: Complete ‘guix size’ file names....* etc/completion/bash/guix (_guix_complete): Complete store file names after the ‘size’ command. Tobias Geerinckx-Rice 2021-10-03bash completion: Complete ‘guix build’ file names....* etc/completion/bash/guix (_guix_complete_available_package_or_store_file): New function. (_guix_complete): Call it in place of _guix_complete_available_package after the ‘build’ command. Tobias Geerinckx-Rice 2021-10-03bash completion: Complete ‘guix weather’ packages....* etc/completion/bash/guix (_guix_complete): Complete available package names for ‘guix weather’ when not following ‘-m’. Tobias Geerinckx-Rice 2021-10-03bash completion: Append to $COMPREPLY where possible...._guix_complete is always called with a fresh empty array. * etc/completion/bash/guix (_guix_complete_command) (_guix_complete_subcommand, _guix_complete_installed_package) (_guix_complete_option, _guix_complete_pid): Append to $COMPREPLY rather than re-assigning. Tobias Geerinckx-Rice 2021-10-03bash completion: Consolidate similar $command ‘if’ branches....* etc/completion/bash/guix (_guix_complete): Combine the ‘upgrade’ and ‘remove’ commands, as well as ‘download’, ‘gc’, and ‘hash’. Tobias Geerinckx-Rice 2021-06-16bash_completion: Complete options for ‘guix environment’....Note that there are still plenty of bugs that this series didn't fix, e.g.: $ guix time-machine -- system reconf<Tab> * etc/completion/bash/guix (_guix_complete): Call _guix_complete_option if the word at point looks like an option. Tobias Geerinckx-Rice 2021-06-16bash completion: Complete options for the right command....* etc/completion/bash/guix (_guix_complete_option): Receive two arguments and complete the second based on the first, instead of blindly completing the very last word based on the very first (sub)command. (_guix_complete): Adjust both calls. Tobias Geerinckx-Rice 2021-06-16bash completion: Really support subcommands....* etc/completion/bash/guix (_guix_is_option): New function. (_guix_is_command): Remove function to replace it with simple string comparison… (_guix_complete): …here. Complete the ‘innermost’ command at point. Tobias Geerinckx-Rice