From bba513a3e52170dc06b545a44f2d859ae4b757b5 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 19 Mar 2010 15:50:59 -0400 Subject: [PATCH] Add support for setup files written in YAML. Not the default. (Yet?) --- IkiWiki/Setup/Yaml.pm | 43 +++++++++++++++++++++++++++++++++++++++++++ debian/changelog | 1 + 2 files changed, 44 insertions(+) create mode 100644 IkiWiki/Setup/Yaml.pm diff --git a/IkiWiki/Setup/Yaml.pm b/IkiWiki/Setup/Yaml.pm new file mode 100644 index 000000000..ba9192faf --- /dev/null +++ b/IkiWiki/Setup/Yaml.pm @@ -0,0 +1,43 @@ +#!/usr/bin/perl + +package IkiWiki::Setup::Yaml; + +use warnings; +use strict; +use IkiWiki; +use YAML; + +sub loaddump ($$) { + my $class=shift; + my $content=shift; + + IkiWiki::Setup::merge(Load($content)); +} + +sub gendump ($@) { + my $class=shift; + + "# IkiWiki::Setup::Yaml - YAML formatted setup file", + "#", + (map { "# $_" } @_), + "#", + IkiWiki::Setup::commented_dump(\&dumpline, "") +} + + +sub dumpline ($$$$) { + my $key=shift; + my $value=shift; + my $type=shift; + my $prefix=shift; + + $YAML::UseHeader=0; + my $dump=Dump({$key => $value}); + chomp $dump; + if (length $prefix) { + $dump=join("", map { $prefix.$_ } split(/\n/, $dump)); + } + return $dump; +} + +1 diff --git a/debian/changelog b/debian/changelog index 73f6fcff8..e020b380f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,7 @@ ikiwiki (3.20100313) UNRELEASED; urgency=low for security or other reasons. Closes: #447267 (Thanks to Aaron Wilson for the original patch.) * Allow wrappers to be built using tcc. + * Add support for setup files written in YAML. -- Joey Hess Sat, 13 Mar 2010 14:48:10 -0500 -- 2.32.0.93.g670b81a890