branch: externals/system-packages
commit 4f82d2499c9c25029e166ed62724eb18e11a08da
Author: Artyom Khramov <[email protected]>
Commit: Artyom Khramov <[email protected]>
Fix missing space before a nonconfirm option
Currently `system-packages-get-command` does not put a space before a
nonconfirm option and it results in incorrect command, so instead of
```sh
sudo apt-get install rg -y
```
We receive
```sh
sudo apt-get install rg-y
```
This change adds an additional space before noconfirm option if `PACK`
parameter was provided.
---
system-packages.el | 6 +++---
test/system-packages-test.el | 8 +++++++-
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/system-packages.el b/system-packages.el
index 220984f..9312fa5 100644
--- a/system-packages.el
+++ b/system-packages.el
@@ -328,9 +328,9 @@ of passing additional arguments to the package manager."
(setq command (mapcar (lambda (part) (concat "sudo " part)) command)))
(setq command (mapconcat 'identity command " && "))
(setq command (mapconcat 'identity (list command pack) " "))
- (setq args (concat args noconfirm))
- (when args
- (setq command (concat command args)))))
+ (when noconfirm
+ (setq args (concat args (and pack " ") noconfirm)))
+ (concat command args)))
(defun system-packages--run-command (action &optional pack args)
"Run a command asynchronously using the system's package manager.
diff --git a/test/system-packages-test.el b/test/system-packages-test.el
index 4360a4a..67b1d7a 100644
--- a/test/system-packages-test.el
+++ b/test/system-packages-test.el
@@ -33,7 +33,13 @@
(system-packages-use-sudo t)
(system-packages-package-manager 'pacman))
(system-packages-get-command 'install))
- "sudo pacman -S --noconfirm")))
+ "sudo pacman -S --noconfirm"))
+ (should (string=
+ (let ((system-packages-noconfirm t)
+ (system-packages-use-sudo t)
+ (system-packages-package-manager 'apt))
+ (system-packages-get-command 'install "rg"))
+ "sudo apt-get install rg -y")))
(ert-deftest system-packages-errors ()
"Error when we don't know a command."