diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-10-13 04:02:18 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-10-13 04:02:18 -0500 |
commit | 7a09ff3f1d271258f81d9d1f6505c22daa605eed (patch) | |
tree | b5e6b8aef45cee1eb57931535e4427256dd11d08 | |
parent | 865571068d0e7327a41c42ae46202c95b3f116a9 (diff) | |
download | horizon-7a09ff3f1d271258f81d9d1f6505c22daa605eed.tar.gz horizon-7a09ff3f1d271258f81d9d1f6505c22daa605eed.tar.bz2 horizon-7a09ff3f1d271258f81d9d1f6505c22daa605eed.tar.xz horizon-7a09ff3f1d271258f81d9d1f6505c22daa605eed.zip |
hscript, tools: Support shell writing in Simulator
-rw-r--r-- | hscript/meta.cc | 5 | ||||
-rw-r--r-- | tools/hscript-simulate/simulator.cc | 16 |
2 files changed, 15 insertions, 6 deletions
diff --git a/hscript/meta.cc b/hscript/meta.cc index dc29b0c..4fef42a 100644 --- a/hscript/meta.cc +++ b/hscript/meta.cc @@ -89,6 +89,7 @@ bool Hostname::execute(ScriptOptions opts) const { if(opts.test(Simulate)) { output_info("installfile:" + std::to_string(this->lineno()), "hostname: set hostname to '" + actual + "'"); + std::cout << "hostname " << actual << std::endl; } else { if(sethostname(actual.c_str(), actual.size()) == -1) { output_error("installfile:" + std::to_string(this->lineno()), @@ -102,6 +103,8 @@ bool Hostname::execute(ScriptOptions opts) const { if(opts.test(Simulate)) { output_info("installfile:" + std::to_string(this->lineno()), "hostname: write '" + actual + "' to /etc/hostname"); + std::cout << "printf '%s' " << actual << " > /target/etc/hostname" + << std::endl; } else { std::ofstream hostname_f("/target/etc/hostname"); if(!hostname_f) { @@ -165,6 +168,8 @@ bool Repository::execute(ScriptOptions opts) const { output_info("installfile:" + std::to_string(this->lineno()), "repository: write '" + this->value() + "' to /etc/apk/repositories"); + std::cout << "echo '" << this->value() << + "' >> /target/etc/apk/repositories" << std::endl; } else { std::ofstream repo_f("/target/etc/apk/repositories", std::ios_base::ate); diff --git a/tools/hscript-simulate/simulator.cc b/tools/hscript-simulate/simulator.cc index 0342894..95bdde6 100644 --- a/tools/hscript-simulate/simulator.cc +++ b/tools/hscript-simulate/simulator.cc @@ -45,12 +45,16 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } - bold_if_pretty(std::cout); - std::cout << "HorizonScript Simulation Utility version 0.1.0"; - reset_if_pretty(std::cout); - std::cout << std::endl; - std::cout << "Copyright (c) 2019 Adélie Linux and contributors. AGPL-3.0 license." << std::endl; - std::cout << std::endl; + if(isatty(1)) { + bold_if_pretty(std::cout); + std::cout << "HorizonScript Simulation Utility version 0.1.0"; + reset_if_pretty(std::cout); + std::cout << std::endl; + std::cout << "Copyright (c) 2019 Adélie Linux and contributors. AGPL-3.0 license." << std::endl; + std::cout << std::endl; + } else { + std::cout << "#!/bin/sh" << std::endl << std::endl; + } my_script = Horizon::Script::load(installfile, opts); if(my_script == nullptr) { |