diff --git a/demo.conf b/demo.conf index a91733e..c119170 100644 --- a/demo.conf +++ b/demo.conf @@ -2,14 +2,12 @@ task print_hello = start_stop { start = command { - cmd = "/bin/echo 'welcome to initd demo'", - working_directory = "/" + cmd = "/bin/echo 'welcome to initd demo'", }, stop = command { - cmd = "/bin/false", - working_directory = "/" + cmd = "/bin/false", }, }; @@ -17,14 +15,12 @@ task print_hostname_before = start_stop { start = command { - cmd = "/bin/hostname", - working_directory = "/" + cmd = "/bin/hostname", }, stop = command { - cmd = "/bin/hostname", - working_directory = "/" + cmd = "/bin/hostname", }, }; @@ -38,14 +34,12 @@ task print_hostname_after = start_stop { start = command { - cmd = "/bin/hostname", - working_directory = "/" + cmd = "/bin/hostname", }, stop = command { - cmd = "/bin/hostname", - working_directory = "/" + cmd = "/bin/hostname", }, }; @@ -53,14 +47,12 @@ task task_1 = start_stop { start = command { - cmd = "/bin/echo 'task 1 started'", - working_directory = "/" + cmd = "/bin/echo 'task 1 started'", }, stop = command { - cmd = "/bin/echo 'task 1 stopped'", - working_directory = "/" + cmd = "/bin/echo 'task 1 stopped'", }, }; @@ -68,14 +60,12 @@ task task_2 = start_stop { start = command { - cmd = "/bin/echo 'task 2 started'", - working_directory = "/" + cmd = "/bin/echo 'task 2 started'", }, stop = command { - cmd = "/bin/echo 'task 2 stopped'", - working_directory = "/" + cmd = "/bin/echo 'task 2 stopped'", }, }; @@ -83,14 +73,12 @@ task task_3 = start_stop { start = command { - cmd = "/bin/echo 'task 3 started'", - working_directory = "/" + cmd = "/bin/echo 'task 3 started'", }, stop = command { - cmd = "/bin/echo 'task 3 stopped'", - working_directory = "/" + cmd = "/bin/echo 'task 3 stopped'", }, }; diff --git a/libinitd-readconfig/read_value_node/read_value_node_tasks.cpp b/libinitd-readconfig/read_value_node/read_value_node_tasks.cpp index 9a0e402..041e586 100644 --- a/libinitd-readconfig/read_value_node/read_value_node_tasks.cpp +++ b/libinitd-readconfig/read_value_node/read_value_node_tasks.cpp @@ -177,14 +177,14 @@ boost::optional read_value_node_impl::read(value_node const& n std::multimap properties_by_name = make_properties_map(cnode, esink); boost::optional cmd = extract_property_from_map(cnode, properties_by_name, "cmd", esink); - boost::optional working_directory = extract_property_from_map(cnode, properties_by_name, "working_directory", esink); - if (!cmd || !working_directory) + std::string working_directory = extract_property_from_map(cnode, properties_by_name, "working_directory", "/", esink); + if (!cmd) return boost::none; command data; data.cmd = *cmd; - data.working_directory = *working_directory; + data.working_directory = working_directory; return data; } diff --git a/test-config/config_tests/task-hostname-5.gold b/test-config/config_tests/task-hostname-5.gold new file mode 100644 index 0000000..f04c113 --- /dev/null +++ b/test-config/config_tests/task-hostname-5.gold @@ -0,0 +1,5 @@ +task a = sethostname +{ + hostname = "localhost" + no_restore = false +} diff --git a/test-config/config_tests/task-hostname-5.txt b/test-config/config_tests/task-hostname-5.txt new file mode 100644 index 0000000..4495f6a --- /dev/null +++ b/test-config/config_tests/task-hostname-5.txt @@ -0,0 +1,4 @@ +task a = sethostname +{ + hostname = "localhost" +};