summaryrefslogtreecommitdiff
path: root/hscript/script.cc
diff options
context:
space:
mode:
Diffstat (limited to 'hscript/script.cc')
-rw-r--r--hscript/script.cc20
1 files changed, 19 insertions, 1 deletions
diff --git a/hscript/script.cc b/hscript/script.cc
index d8510b6..90e6774 100644
--- a/hscript/script.cc
+++ b/hscript/script.cc
@@ -286,12 +286,30 @@ const Script *Script::load(std::istream &sstream, const ScriptOptions opts) {
delete the_script;
return nullptr;
} else {
+ the_script->opts = opts;
return the_script;
}
}
bool Script::validate() const {
- return false;
+ int failures = 0;
+ if(!this->internal->network->validate()) failures++;
+ if(!this->internal->hostname->validate()) failures++;
+ if(!this->internal->rootpw->validate()) failures++;
+ for(auto &mount : this->internal->mounts) {
+ if(!mount->validate()) {
+ failures++;
+ continue;
+ }
+ /* TODO requirements to implement:
+ * Runner.Validate.mount.Unique.
+ * Runner.Validate.mount.Root.
+ */
+ if(this->opts.test(InstallEnvironment)) {
+ /* TODO: Runner.Validate.mount.Block. */
+ }
+ }
+ return (failures == 0);
}
}