summaryrefslogtreecommitdiff
path: root/hscript/script.cc
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-06 13:46:57 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-06 13:46:57 -0500
commit65f70c4d29fb2ffc75aad2435ac6b03059bb6e80 (patch)
treefe78d655b3c918eedb7bc834d1daa281ef0f8430 /hscript/script.cc
parent600ced25919b7b0d00cad5c7b5d805b549d8c3ed (diff)
downloadhorizon-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.cc27
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;
}