--shell Output shell configuration file
--python Output Python configuration file
--php Output PHP configuration file
+ --ruby Output Ruby configuration file
Information:
# Standard options
shortopts = "hs:"
longopts = ["shell", "bash", "python",
+ "ruby",
"php",
"xml",
"variables",
opt == "--bash" or \
opt == "--python":
output = plc.output_shell
+ elif opt == "--ruby":
+ output = plc.output_ruby
elif opt == "--php":
output = plc.output_php
elif opt == "--xml":
if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/plc_config.py ] ; then
plc-config --python >/etc/planetlab/plc_config.py
fi
+ if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/plc_config.rb ] ; then
+ plc-config --ruby >/etc/planetlab/plc_config.rb
+ fi
if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/php/plc_config.php ] ; then
mkdir -p /etc/planetlab/php
plc-config --php >/etc/planetlab/php/plc_config.php
return buf.getvalue()
+ def output_ruby(self, show_comments = True, encoding = "utf-8"):
+ """
+ Return variables as a shell script.
+ """
+
+ buf = codecs.lookup(encoding)[3](StringIO())
+ buf.writelines(["# " + line + os.linesep for line in self._header()])
+
+ for (category_id, (category, variables)) in self._variables.iteritems():
+ for variable in variables.values():
+ (id, name, value, comments) = self._sanitize_variable(category_id, variable)
+ if show_comments:
+ buf.write(os.linesep)
+ if name is not None:
+ buf.write("# " + name + os.linesep)
+ if comments is not None:
+ buf.writelines(["# " + line + os.linesep for line in comments])
+ # bash does not have the concept of NULL
+ if value is not None:
+ buf.write("$" + id + "=" + value + os.linesep)
+
+ return buf.getvalue()
+
+
+
def output_php(self, encoding = "utf-8"):
"""