aboutsummaryrefslogtreecommitdiff
path: root/src/deployment.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-04-01 15:41:26 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-04-01 15:56:45 -0700
commitfadfbfc99f0409eb9899c7494d17e15ff596542d (patch)
tree5c34fd977570dd12bb67df5bfcdba10299412512 /src/deployment.lisp
parent61a5fea1600969f404d9fcf0ba6a3fc0fdc4b5f7 (diff)
downloadconsfigurator-fadfbfc99f0409eb9899c7494d17e15ff596542d.tar.gz
propagate :NO-CHANGE out of fork subdeployments
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/deployment.lisp')
-rw-r--r--src/deployment.lisp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/deployment.lisp b/src/deployment.lisp
index 1937270..472ba4b 100644
--- a/src/deployment.lisp
+++ b/src/deployment.lisp
@@ -33,13 +33,16 @@ preprocessed."
(connect (connections)
(destructuring-bind ((type . args) . remaining) connections
;; implementations of ESTABLISH-CONNECTION which call
- ;; CONTINUE-DEPLOY* or CONTINUE-DEPLOY*-PROGRAM return nil to us
- (when-let ((*connection*
- (apply #'establish-connection type remaining args)))
- (if remaining
- (connect remaining)
- (apply-*host*-propspec))
- (connection-teardown *connection*)))))
+ ;; CONTINUE-DEPLOY* or CONTINUE-DEPLOY*-PROGRAM return nil to us,
+ ;; and possibly :NO-CHANGE as a second value
+ (multiple-value-bind (*connection* return)
+ (apply #'establish-connection type remaining args)
+ (if *connection*
+ (prog1 (if remaining
+ (connect remaining)
+ (apply-*host*-propspec))
+ (connection-teardown *connection*))
+ return)))))
(let ((*host* (preprocess-host host)))
(cond
((and connections (or *connection* (eq :local (caar connections))))