aboutsummaryrefslogtreecommitdiff
path: root/src/connection
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2022-06-25 15:12:14 -0700
committerSean Whitton <spwhitton@spwhitton.name>2022-06-27 13:26:21 -0700
commitafe955cbd1dab48cf15a5a9b3f033d47d87720f4 (patch)
treed2ff5bbddf94471e8f29015d90fbf71d22e84702 /src/connection
parent911bb7fc7597a83d1453ae083e33d7eaa8640f6b (diff)
downloadconsfigurator-afe955cbd1dab48cf15a5a9b3f033d47d87720f4.tar.gz
convert some internal shell snippets to single lines
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/connection')
-rw-r--r--src/connection/shell-wrap.lisp22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/connection/shell-wrap.lisp b/src/connection/shell-wrap.lisp
index 51591b8..1200391 100644
--- a/src/connection/shell-wrap.lisp
+++ b/src/connection/shell-wrap.lisp
@@ -46,18 +46,16 @@
path
content
mode)
- (let ((cmd
- (format
- nil "set -e
-tmpf=$(~A)
-trap \"rm -f '$tmpf'\" EXIT HUP KILL TERM INT
-chmod ~O \"$tmpf\"
-cat >\"$tmpf\"
-mv \"$tmpf\" ~A"
- (mkstemp-cmd
- (merge-pathnames "tmp.XXXXXX" (pathname-directory-pathname path)))
- mode
- (sh-escape path))))
+ (let* ((mkstemp (mkstemp-cmd
+ (merge-pathnames "tmp.XXXXXX"
+ (pathname-directory-pathname path))))
+ (cmd (sh-script-to-single-line
+ (format nil "set -e
+ tmpf=$(~A)
+ trap \"rm -f '$tmpf'\" EXIT HUP KILL TERM INT
+ chmod ~O \"$tmpf\"
+ cat >\"$tmpf\"
+ mv \"$tmpf\" ~A" mkstemp mode (sh-escape path)))))
(multiple-value-bind (out exit) (connection-run conn cmd content)
(unless (zerop exit)
(error "Failed to write ~A: ~A" path out)))))