r36572 - in /branches/upstream/libconfig-augeas-perl/current: Build.PL ChangeLog META.yml lib/Config/Augeas.pm lib/Config/Augeas.xs t/Config-Augeas.t t/Config-AugeasC.t
ddumont-guest at users.alioth.debian.org
ddumont-guest at users.alioth.debian.org
Thu May 28 11:00:53 UTC 2009
Author: ddumont-guest
Date: Thu May 28 11:00:44 2009
New Revision: 36572
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=36572
Log:
[svn-upgrade] Integrating new upstream version, libconfig-augeas-perl (0.500)
Modified:
branches/upstream/libconfig-augeas-perl/current/Build.PL
branches/upstream/libconfig-augeas-perl/current/ChangeLog
branches/upstream/libconfig-augeas-perl/current/META.yml
branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.pm
branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.xs
branches/upstream/libconfig-augeas-perl/current/t/Config-Augeas.t
branches/upstream/libconfig-augeas-perl/current/t/Config-AugeasC.t
Modified: branches/upstream/libconfig-augeas-perl/current/Build.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libconfig-augeas-perl/current/Build.PL?rev=36572&op=diff
==============================================================================
--- branches/upstream/libconfig-augeas-perl/current/Build.PL (original)
+++ branches/upstream/libconfig-augeas-perl/current/Build.PL Thu May 28 11:00:44 2009
@@ -54,11 +54,11 @@
my $aug_version = `pkg-config --modversion augeas` ;
chomp($aug_cflags, $aug_libs, $aug_version) ;
-if ( not defined $aug_version or ( $aug_version lt '0.4.0')) {
+if ( not defined $aug_version or ( $aug_version lt '0.5.0')) {
warn << "EOW2" ;
***
*** 'pkg-config' did find augeas version $aug_version but
-*** version 0.4.0 minimum is required
+*** version 0.5.0 minimum is required
***
EOW2
exit 0;
Modified: branches/upstream/libconfig-augeas-perl/current/ChangeLog
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libconfig-augeas-perl/current/ChangeLog?rev=36572&op=diff
==============================================================================
--- branches/upstream/libconfig-augeas-perl/current/ChangeLog (original)
+++ branches/upstream/libconfig-augeas-perl/current/ChangeLog Thu May 28 11:00:44 2009
@@ -1,3 +1,10 @@
+2009-05-27 Dominique Dumont <dominique.dumont at hp.com> v 0.500
+
+ * lib/Config/Augeas.pm (new): added no_load, save => noop,
+ no_std_inc options
+ (defvar): new method for Augeas 0.5.0
+ (defnode): new method for Augeas 0.5.0
+
2009-02-17 Dominique Dumont <dominique.dumont at hp.com> v0.400
* lib/Config/Augeas.xs (match): dies if aug_match returns -1. Perl
Modified: branches/upstream/libconfig-augeas-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libconfig-augeas-perl/current/META.yml?rev=36572&op=diff
==============================================================================
--- branches/upstream/libconfig-augeas-perl/current/META.yml (original)
+++ branches/upstream/libconfig-augeas-perl/current/META.yml Thu May 28 11:00:44 2009
@@ -1,6 +1,6 @@
---
name: Config-Augeas
-version: 0.400
+version: 0.500
author:
- Dominique Dumont (ddumont at cpan dot org)
abstract: Edit configuration files through Augeas C library
@@ -13,8 +13,8 @@
provides:
Config::Augeas:
file: lib/Config/Augeas.pm
- version: 0.400
-generated_by: Module::Build version 0.3
+ version: 0.500
+generated_by: Module::Build version 0.33
meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.2.html
- version: 1.2
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
Modified: branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.pm?rev=36572&op=diff
==============================================================================
--- branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.pm (original)
+++ branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.pm Thu May 28 11:00:44 2009
@@ -22,7 +22,7 @@
use Carp;
use IO::File ;
-our $VERSION = '0.400';
+our $VERSION = '0.500';
require XSLoader;
XSLoader::load('Config::Augeas', $VERSION);
@@ -87,16 +87,26 @@
the environment variable C<AUGEAS_ROOT>. If that doesn't exist either,
use "C</>".
-=item save => backup | newfile
+=item save => backup | newfile | noop
Specify how to save the configuration file. Either create a newfile
(with extension C<.augnew>, and do not overwrite the original file) or
-move the original file into a backup file (C<.augsave> extension)
+move the original file into a backup file (C<.augsave> extension).
+C<noop> make saves a no-op process, just record what would have
+changed
=item type_check => 1
Typecheck lenses; since it can be very expensive it is not done by
default.
+
+=item no_std_inc
+
+Do not use the builtin load path for modules
+
+=item no_load
+
+Do not load the tree from AUG_INIT
=back
@@ -113,13 +123,15 @@
my $save = delete $args{save} || '';
if ($save eq 'backup') { $flags ||= &AUG_SAVE_BACKUP }
elsif ($save eq 'newfile') { $flags ||= &AUG_SAVE_NEWFILE }
+ elsif ($save =~ 'noop') { $flags ||= &AUG_SAVE_NOOP }
elsif ($save) {
croak __PACKAGE__," new: unexpected save value: $save. ",
"Expected backup or newfile";
}
- my $check = delete $args{type_check} || 0;
- $flags ||= &AUG_TYPE_CHECK if $check ;
+ $flags ||= &AUG_TYPE_CHECK if ( delete $args{type_check} || 0 );
+ $flags ||= &AUG_NO_STDINC if ( delete $args{no_std_inc} || 0 ) ;
+ $flags ||= &AUG_NO_LOAD if ( delete $args{no_load} || 0 ) ;
croak __PACKAGE__," new: unexpected parameters: ",
join (' ',keys %args)
@@ -133,6 +145,70 @@
}
=head1 Methods
+
+=head2 defvar( name, [ expr ])
+
+Define a variable C<name> whose value is the result of evaluating
+C<expr>. If a variable C<name> already exists, its name will be replaced
+with the result of evaluating C<expr>.
+
+If C<expr> is omitted, the variable C<name> will be removed if it is
+defined.
+
+Path variables can be used in path expressions later on by prefixing
+them with '$'.
+
+Returns -1 on error; on success, returns 0 if C<expr> evaluates to anything
+other than a nodeset, and the number of nodes if C<expr> evaluates to a
+nodeset
+
+=cut
+
+sub defvar {
+ my $self = shift ;
+ my $name = shift || croak __PACKAGE__," defvar: undefined name";
+ my $expr = shift || 0 ;
+
+ return $self->{aug_c} -> defvar($name, $expr) ;
+}
+
+=head2 defnode ( name, expr, value )
+
+Define a variable C<name> whose value is the result of evaluating
+C<expr>, which must evaluate to a nodeset. If a variable C<name>
+already exists, its name will be replaced with the result of
+evaluating C<expr>.
+
+If C<expr> evaluates to an empty nodeset, a node is created, equivalent to
+calling C<set( expr, value)> and C<name> will be the nodeset containing
+that single node.
+
+Returns undef on error
+
+Returns an array containing:
+
+=over
+
+=item *
+
+the number of nodes in the nodeset
+
+=item *
+
+1 if a node was created, and 0 if it already existed.
+
+=back
+
+=cut
+
+sub defnode {
+ my $self = shift ;
+ my $name = shift || croak __PACKAGE__," defnode: undefined name";
+ my $expr = shift || croak __PACKAGE__," defnode: undefined expr";
+ my $value = shift || croak __PACKAGE__," defnode: undefined value";
+
+ return ($self->{aug_c} -> defnode($name, $expr, $value)) ;
+}
=head2 get( path )
Modified: branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.xs?rev=36572&op=diff
==============================================================================
--- branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.xs (original)
+++ branches/upstream/libconfig-augeas-perl/current/lib/Config/Augeas.xs Thu May 28 11:00:44 2009
@@ -46,6 +46,9 @@
newCONSTSUB(stash, "AUG_SAVE_BACKUP", newSViv(AUG_SAVE_BACKUP));
newCONSTSUB(stash, "AUG_SAVE_NEWFILE", newSViv(AUG_SAVE_NEWFILE));
newCONSTSUB(stash, "AUG_TYPE_CHECK", newSViv(AUG_TYPE_CHECK));
+ newCONSTSUB(stash, "AUG_NO_STDINC", newSViv(AUG_NO_STDINC));
+ newCONSTSUB(stash, "AUG_SAVE_NOOP", newSViv(AUG_SAVE_NOOP));
+ newCONSTSUB(stash, "AUG_NO_LOAD", newSViv(AUG_NO_LOAD));
}
Config_Augeas*
@@ -63,6 +66,30 @@
CODE:
//printf("destroying aug object\n");
aug_close(aug);
+
+int
+aug_defvar(aug, name, expr)
+ Config_Augeas* aug
+ const char* name
+ const char* expr
+
+ # returns an array ( return value, created )
+int
+aug_defnode(aug, name, expr, value)
+ Config_Augeas* aug
+ const char* name
+ const char* expr
+ const char* value
+ INIT:
+ int created ;
+ int ret ;
+ PPCODE:
+ created = 1 ;
+ ret = aug_defnode(aug, name, expr, value, &created ) ;
+ if (ret >= 0 ) {
+ XPUSHs(sv_2mortal(newSVnv(ret)));
+ XPUSHs(sv_2mortal(newSVnv(created)));
+ }
const char*
aug_get(aug, path)
Modified: branches/upstream/libconfig-augeas-perl/current/t/Config-Augeas.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libconfig-augeas-perl/current/t/Config-Augeas.t?rev=36572&op=diff
==============================================================================
--- branches/upstream/libconfig-augeas-perl/current/t/Config-Augeas.t (original)
+++ branches/upstream/libconfig-augeas-perl/current/t/Config-Augeas.t Thu May 28 11:00:44 2009
@@ -8,7 +8,7 @@
use warnings ;
use strict;
-use Test::More tests => 14 ;
+use Test::More tests => 18 ;
ok(1,"Compilation done");
@@ -88,3 +88,18 @@
is_deeply(\@content,\@expect,"check written file content");
#$aug->print('/files/') ; # print all nodes into $data string
+
+$ret = $aug->defvar(etc => '/files/etc/*') ;
+is($ret,2,"defvar /files/etc/*") ;
+
+$ret = $aug->defvar(etc2 => '/files/etc') ;
+is($ret,1,"defvar etc2 /files/etc/*") ;
+
+$ret = $aug->get('$etc2/hosts/2/canonical') ;
+is($ret,'newbilbo',"Called get defvar (returned $ret )");
+
+my $v = '$etc2/hosts/1/ipaddr';
+ at a = $aug->defnode(local => $v,'127.0.0.2') ;
+is_deeply(\@a,[1,0],"defnode $v") ;
+
+#$aug->print('') ;
Modified: branches/upstream/libconfig-augeas-perl/current/t/Config-AugeasC.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libconfig-augeas-perl/current/t/Config-AugeasC.t?rev=36572&op=diff
==============================================================================
--- branches/upstream/libconfig-augeas-perl/current/t/Config-AugeasC.t (original)
+++ branches/upstream/libconfig-augeas-perl/current/t/Config-AugeasC.t Thu May 28 11:00:44 2009
@@ -21,8 +21,9 @@
# constants are not exported so we switch package
my $fail = 0;
-foreach my $constname (qw(
- AUG_NONE AUG_SAVE_BACKUP AUG_SAVE_NEWFILE AUG_TYPE_CHECK)) {
+foreach my $constname (qw(AUG_NONE AUG_SAVE_BACKUP AUG_SAVE_NEWFILE
+ AUG_TYPE_CHECK AUG_NO_STDINC AUG_SAVE_NOOP
+ AUG_NO_LOAD)) {
next if (eval "my \$a = $constname; 1");
if ($@ =~ /^Your vendor has not defined Config::Augeas macro $constname/) {
print "# pass: $@";
More information about the Pkg-perl-cvs-commits
mailing list