summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hscript/meta.cc9
-rw-r--r--hscript/script.cc10
2 files changed, 19 insertions, 0 deletions
diff --git a/hscript/meta.cc b/hscript/meta.cc
index fbd6f31..55316ac 100644
--- a/hscript/meta.cc
+++ b/hscript/meta.cc
@@ -135,6 +135,15 @@ bool Hostname::execute(ScriptOptions opts) const {
}
#ifdef HAS_INSTALL_ENV
else {
+ if(!fs::exists("/target/etc/conf.d")) {
+ error_code ec;
+ fs::create_directory("/target/etc/conf.d", ec);
+ if(ec) {
+ output_error("installfile:" + std::to_string(line),
+ "hostname: could not create /etc/conf.d "
+ "directory", ec.message());
+ }
+ }
std::ofstream net_conf_f("/target/etc/conf.d/net",
std::ios_base::app);
if(!net_conf_f) {
diff --git a/hscript/script.cc b/hscript/script.cc
index e253dbe..841c546 100644
--- a/hscript/script.cc
+++ b/hscript/script.cc
@@ -1281,6 +1281,9 @@ bool Script::execute() const {
"cannot read wireless networking configuration");
}
} else {
+ if(!fs::exists("/target/etc/wpa_supplicant", ec)) {
+ fs::create_directory("/target/etc/wpa_supplicant", ec);
+ }
fs::copy_file("/tmp/horizon/wpa_supplicant.conf",
"/target/etc/wpa_supplicant/wpa_supplicant.conf",
fs_overwrite, ec);
@@ -1325,6 +1328,13 @@ bool Script::execute() const {
<< std::endl << conf.str() << std::endl
<< "NETCONF_EOF" << std::endl;
} else {
+ if(!fs::exists("/target/etc/conf.d")) {
+ fs::create_directory("/target/etc/conf.d", ec);
+ if(ec) {
+ output_error("internal", "could not create /etc/conf.d "
+ "directory", ec.message());
+ }
+ }
std::ofstream conf_file("/target/etc/conf.d/net",
std::ios_base::app);
if(!conf_file) {