aboutsummaryrefslogtreecommitdiff
path: root/src/function/external_command.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/function/external_command.cc')
-rw-r--r--src/function/external_command.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/function/external_command.cc b/src/function/external_command.cc
index 7d91a9a..3819a43 100644
--- a/src/function/external_command.cc
+++ b/src/function/external_command.cc
@@ -40,6 +40,7 @@ inline xercesc::DOMNode* importDocumentElement(
namespace InputXSLT {
DomDocumentCache::document_ptr FunctionExternalCommand::constructDocument(
+ const FilesystemContext& fsContext,
std::string command,
boost::optional<std::string> input
) const {
@@ -51,6 +52,9 @@ DomDocumentCache::document_ptr FunctionExternalCommand::constructDocument(
context.environment = boost::process::self::get_environment();
context.stdout_behavior = boost::process::capture_stream();
context.stdin_behavior = boost::process::capture_stream();
+ context.work_directory = boost::filesystem::canonical(
+ fsContext.getBase().parent_path()
+ ).string();
boost::process::child commandProcess(
boost::process::launch_shell(command, context)