diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-10-06 13:46:57 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-10-06 13:46:57 -0500 |
commit | 65f70c4d29fb2ffc75aad2435ac6b03059bb6e80 (patch) | |
tree | fe78d655b3c918eedb7bc834d1daa281ef0f8430 /hscript/script.cc | |
parent | 600ced25919b7b0d00cad5c7b5d805b549d8c3ed (diff) | |
download | horizon-65f70c4d29fb2ffc75aad2435ac6b03059bb6e80.tar.gz horizon-65f70c4d29fb2ffc75aad2435ac6b03059bb6e80.tar.bz2 horizon-65f70c4d29fb2ffc75aad2435ac6b03059bb6e80.tar.xz horizon-65f70c4d29fb2ffc75aad2435ac6b03059bb6e80.zip |
Add skeleton logic
Diffstat (limited to 'hscript/script.cc')
-rw-r--r-- | hscript/script.cc | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/hscript/script.cc b/hscript/script.cc index 876efa4..748b09a 100644 --- a/hscript/script.cc +++ b/hscript/script.cc @@ -10,6 +10,8 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +#include <fstream> +#include <iostream> #include "script.hh" #include "disk.hh" #include "meta.hh" @@ -34,11 +36,32 @@ struct Script::ScriptPrivate { Script::Script() { } -const Script *Script::load(std::string, ScriptOptions) { - return nullptr; +const Script *Script::load(std::string path, ScriptOptions opts) { + std::ifstream file; + std::string maybe_error; + + file.exceptions(std::ios::badbit); + try { + file.open(path); + } catch(const std::ios::failure &error) { + maybe_error = error.what(); + } catch(const std::exception &error) { + maybe_error = error.what(); + } + if(!file) { + std::cerr << "Cannot open installfile at \"" << path << "\": "; + std::cerr << maybe_error; + std::cerr << std::endl; + return nullptr; + } + + return Script::load(file, opts); } const Script *Script::load(std::istream &, ScriptOptions) { + Script *foo = new Script; + delete foo; + std::cout << "loaded" << std::endl; return nullptr; } |