diff options
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; } |