Template:IO Restrictions: Difference between revisions
Jump to navigation
Jump to search
m (Link fix: IORules → IOrules) |
(Template:Inote instead of red text) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{inote|All FlightGear disk I/O handled via [[Nasal]] scripting and/or [[Howto:Add new fgcommands to FlightGear|fgcommands]], is subject to access validation via [[IOrules]]. This includes the '''SGPath''' bindings in FlightGear 2.99+}} | |||
However, unlike [[$FG_ROOT]] [[$FG_HOME]] is generally accessible for writing: | However, unlike [[$FG_ROOT]], [[$FG_HOME]] is generally accessible for writing, consider this example: | ||
<syntaxhighlight lang="nasal"> | <syntaxhighlight lang="nasal"> | ||
var | # come up with a path and filename in $FG_HOME, inside the Export sub folder, file name is test.xml | ||
io.write_properties(path, "/sim"); | var filename = getprop("/sim/fg-home") ~ "/Export/test.xml"; | ||
# use the write_properties() helper in io.nas, which is a wrapper for the savexml fgcommand (see README.commands) | |||
io.write_properties( path: filename, prop: "/sim" ); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
This will dump the sub branch of the '''/sim''' property tree into $FG_HOME/Export/test.xml | |||
For additional examples, see $FG_ROOT/Nasal/io.nas | For additional examples, see $FG_ROOT/Nasal/io.nas | ||
To learn more about PropertyList processing via loadxml and savexml, please see $FG_ROOT/Docs/README.commands | To learn more about PropertyList processing via loadxml and savexml, please see $FG_ROOT/Docs/README.commands | ||
Internally, all read/write access is validated via an API called '''fgValidatePath()''', for details please see $FG_SRC/Main/util.cxx<noinclude> | |||
[[Category:Templates]] | |||
[[Category:Undocumented templates]] | |||
</noinclude> |
Latest revision as of 16:34, 28 September 2014
Note All FlightGear disk I/O handled via Nasal scripting and/or fgcommands, is subject to access validation via IOrules. This includes the SGPath bindings in FlightGear 2.99+
However, unlike $FG_ROOT, $FG_HOME is generally accessible for writing, consider this example:
# come up with a path and filename in $FG_HOME, inside the Export sub folder, file name is test.xml
var filename = getprop("/sim/fg-home") ~ "/Export/test.xml";
# use the write_properties() helper in io.nas, which is a wrapper for the savexml fgcommand (see README.commands)
io.write_properties( path: filename, prop: "/sim" );
This will dump the sub branch of the /sim property tree into $FG_HOME/Export/test.xml
For additional examples, see $FG_ROOT/Nasal/io.nas
To learn more about PropertyList processing via loadxml and savexml, please see $FG_ROOT/Docs/README.commands
Internally, all read/write access is validated via an API called fgValidatePath(), for details please see $FG_SRC/Main/util.cxx