From 6e370175065732313c1badd10fc7e3d22de41bec Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Nov 2015 21:18:11 +0200 Subject: guix package: Move 'process-actions' out of sight. * guix/scripts/package.scm (process-actions): New procedure, moved from... (guix-package): ... here. Adjust accordingly. --- guix/scripts/package.scm | 68 ++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'guix') diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 6cf0b02ac3..5f65ed949d 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -786,6 +786,39 @@ (define %actions (delete-generations . ,delete-generations-action) (manifest . ,manifest-action))) +(define (process-actions store opts) + "Process any install/remove/upgrade action from OPTS." + + (define dry-run? (assoc-ref opts 'dry-run?)) + (define bootstrap? (assoc-ref opts 'bootstrap?)) + (define substitutes? (assoc-ref opts 'substitutes?)) + (define profile (or (assoc-ref opts 'profile) %current-profile)) + + ;; First, process roll-backs, generation removals, etc. + (for-each (match-lambda + ((key . arg) + (and=> (assoc-ref %actions key) + (lambda (proc) + (proc store profile arg opts + #:dry-run? dry-run?))))) + opts) + + ;; Then, process normal package installation/removal/upgrade. + (let* ((manifest (profile-manifest profile)) + (install (options->installable opts manifest)) + (remove (options->removable opts manifest)) + (transaction (manifest-transaction (install install) + (remove remove))) + (new (manifest-perform-transaction manifest transaction))) + + (unless (and (null? install) (null? remove)) + (show-manifest-transaction store manifest transaction + #:dry-run? dry-run?) + (build-and-use-profile store profile new + #:bootstrap? bootstrap? + #:use-substitutes? substitutes? + #:dry-run? dry-run?)))) + ;;; ;;; Entry point. @@ -798,39 +831,6 @@ (define (handle-argument arg result arg-handler) (arg-handler arg result) (leave (_ "~A: extraneous argument~%") arg))) - (define (process-actions opts) - ;; Process any install/remove/upgrade action from OPTS. - - (define dry-run? (assoc-ref opts 'dry-run?)) - (define bootstrap? (assoc-ref opts 'bootstrap?)) - (define substitutes? (assoc-ref opts 'substitutes?)) - (define profile (or (assoc-ref opts 'profile) %current-profile)) - - ;; First, process roll-backs, generation removals, etc. - (for-each (match-lambda - ((key . arg) - (and=> (assoc-ref %actions key) - (lambda (proc) - (proc (%store) profile arg opts - #:dry-run? dry-run?))))) - opts) - - ;; Then, process normal package installation/removal/upgrade. - (let* ((manifest (profile-manifest profile)) - (install (options->installable opts manifest)) - (remove (options->removable opts manifest)) - (transaction (manifest-transaction (install install) - (remove remove))) - (new (manifest-perform-transaction manifest transaction))) - - (unless (and (null? install) (null? remove)) - (show-manifest-transaction (%store) manifest transaction - #:dry-run? dry-run?) - (build-and-use-profile (%store) profile new - #:bootstrap? bootstrap? - #:use-substitutes? substitutes? - #:dry-run? dry-run?)))) - (let ((opts (parse-command-line args %options (list %default-options #f) #:argument-handler handle-argument))) (with-error-handling @@ -844,4 +844,4 @@ (define profile (or (assoc-ref opts 'profile) %current-profile)) (if (assoc-ref opts 'bootstrap?) %bootstrap-guile (canonical-package guile-2.0))))) - (process-actions opts))))))) + (process-actions (%store) opts))))))) -- cgit v1.2.3