From 09a594a8fd695ed1326205cdb29158742502862d Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 5 Feb 2021 15:20:02 +0100 Subject: [PATCH] ambrevar/shell: Have `sh' and friends accept multiple arguments. --- .../common-lisp/source/ambrevar/shell.lisp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.local/share/common-lisp/source/ambrevar/shell.lisp b/.local/share/common-lisp/source/ambrevar/shell.lisp index 79971952..1cabb335 100644 --- a/.local/share/common-lisp/source/ambrevar/shell.lisp +++ b/.local/share/common-lisp/source/ambrevar/shell.lisp @@ -104,19 +104,20 @@ Also see `*shell-command-flags*'.") *shell* *shell-command-flag* shell-command)) (export-always 'sh) -(defun sh (shell-command) - "Wrapper around `cmd:cmd' to execute SHELL-COMMAND in `*shell*'." - (cmd:cmd (format-shell-command shell-command))) +(defun sh (&rest shell-args) + "Wrapper around `cmd:cmd' to execute SHELL-COMMAND in `*shell*'. +SHELL-ARGS are strings that are concatenated before being sent to the shell." + (cmd:cmd (format-shell-command (str:join "" shell-args)))) (export-always 'sh&) -(defun sh& (shell-command) - "Wrapper around `cmd:cmd&' to execute SHELL-COMMAND in `*shell*'." - (cmd:cmd& (format-shell-command shell-command))) +(defun sh& (&rest shell-args) + "Same as `sh' but around `cmd:cmd&'" + (cmd:cmd& (format-shell-command (str:join "" shell-args)))) (export-always '$sh) -(defun $sh (shell-command) - "Wrapper around `cmd:$cmd' to execute SHELL-COMMAND in `*shell*'." - (cmd:$cmd (format-shell-command shell-command))) +(defun $sh (&rest shell-args) + "Same as `sh' but around `cmd:$cmd'" + (cmd:$cmd (format-shell-command (str:join "" shell-args)))) (export-always 'cmd&) (defun cmd& (cmd) ; TODO: Support (cmd &rest args) lambda list.