From d4e7c2e1b15eab0f282b4e738a4446244d5a9585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Tue, 5 Aug 2014 19:03:04 +0200 Subject: [PATCH] We actually do want to run the configured system commands on the shell, so set shell to True Also includes a workaround for sarge bug no. 21 Closes #489 --- src/octoprint/server/api/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/octoprint/server/api/__init__.py b/src/octoprint/server/api/__init__.py index 2af44726..530970dc 100644 --- a/src/octoprint/server/api/__init__.py +++ b/src/octoprint/server/api/__init__.py @@ -161,7 +161,12 @@ def performSystemAction(): if availableAction["action"] == action: logger.info("Performing command: %s" % availableAction["command"]) try: - p = sarge.run(availableAction["command"], stderr=sarge.Capture()) + # Note: we put the command in brackets since sarge (up to the most recently released version) has + # a bug concerning shell=True commands. Once sarge 0.1.4 we can upgrade to that and remove this + # workaround again + # + # See https://bitbucket.org/vinay.sajip/sarge/issue/21/behavior-is-not-like-popen-using-shell + p = sarge.run([availableAction["command"]], stderr=sarge.Capture(), shell=True) if p.returncode != 0: returncode = p.returncode stderr_text = p.stderr.text