Changeset 4214 for lang/perl/Config-Pit

Show
Ignore:
Timestamp:
01/08/08 17:29:38 (5 years ago)
Author:
cho45
Message:

lang/perl/Config-Pit/trunk/lib/Config/Pit.pm,
lang/perl/Config-Pit/trunk/bin/ppit:

Implement set sub routine

Location:
lang/perl/Config-Pit/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Config-Pit/trunk/bin/ppit

    r4212 r4214  
    2020    }, 
    2121    set => sub { 
    22         return unless $ENV{EDITOR}; 
    2322        my $name = shift; 
    24         my $data = Config::Pit::get($name); 
    25  
    26         my $fh = File::Temp->new(SUFFIX => ".yaml"); 
    27         print $fh YAML::Dump($data); 
    28         close $fh; 
    29         system $ENV{EDITOR}, $fh->filename; 
    30         $data = YAML::LoadFile($fh->filename); 
    31   
    32         Config::Pit::set($name, data => $data); 
     23        Config::Pit::set($name); 
    3324    }, 
    3425    switch => sub { 
     
    5142        set <name>        => Config values of name with $EDITOR. 
    5243        switch <profile>  => Switch profile to <profile>. 
    53         help             => show this manual 
     44        help              => show this manual 
    5445 
    5546=head1 DESCRIPTION 
  • lang/perl/Config-Pit/trunk/lib/Config/Pit.pm

    r4208 r4214  
    2323                        # merge 
    2424                        my %t = (%{$opts{require}}, %{$profile->{$name}}); 
    25                         # system 
    26                         my $f = File::Temp->new(SUFFIX => ".yaml"); 
    27                         print $f YAML::Dump(\%t); 
    28                         close $f; 
    29                         my $t = file($f->filename)->stat->mtime; 
    30                         system $ENV{EDITOR}, $f->filename; 
    31                         if ($t == file($f->filename)->stat->mtime) { 
    32                                 warn "No changes."; 
    33                         } else { 
    34                                 $profile->{name} = set($name, data => YAML::LoadFile($f->filename)); 
    35                         } 
     25                        $profile->{$name} = set($name, config => \%t); 
    3626                } 
    3727        } 
     
    4131sub set { 
    4232        my ($name, %opts) = @_; 
    43         my $result  = $opts{data} || {}; 
     33        my $result = {}; 
     34        if ($opts{data}) { 
     35                $result = $opts{data}; 
     36        } else { 
     37                return {} unless $ENV{EDITOR}; 
     38                my $setting = $opts{config} || get($name); 
     39                # system 
     40                my $f = File::Temp->new(SUFFIX => ".yaml"); 
     41                print $f YAML::Dump($setting); 
     42                close $f; 
     43                my $t = file($f->filename)->stat->mtime; 
     44                system $ENV{EDITOR}, $f->filename; 
     45                if ($t == file($f->filename)->stat->mtime) { 
     46                        warn "No changes."; 
     47                } else { 
     48                        $result = set($name, data => YAML::LoadFile($f->filename)); 
     49                } 
     50        } 
    4451        my $profile = _load(); 
    4552        $profile->{$name} = $result;