/[cvs]/nfo/perl/scripts/archiver/bin/modifier.pl
ViewVC logotype

Diff of /nfo/perl/scripts/archiver/bin/modifier.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by joko, Sat Feb 1 02:56:03 2003 UTC revision 1.2 by joko, Sat Feb 1 06:44:08 2003 UTC
# Line 4  Line 4 
4  ##  $Id$  ##  $Id$
5  ## ------------------------------------------------------------------------  ## ------------------------------------------------------------------------
6  ##  $Log$  ##  $Log$
7    ##  Revision 1.2  2003/02/01 06:44:08  joko
8    ##  + added option and implementation for '--in-type=pathlist'
9    ##
10  ##  Revision 1.1  2003/02/01 02:56:03  joko  ##  Revision 1.1  2003/02/01 02:56:03  joko
11  ##  + initial commit  ##  + initial commit
12  ##  ##
# Line 36  use lib qw( ../../../libs ../libs ../etc Line 39  use lib qw( ../../../libs ../libs ../etc
39    
40  use Data::Dumper;  use Data::Dumper;
41  use Getopt::Easy;  use Getopt::Easy;
42    #use Data::Storage::Handler::File qw( s2f );
43    use Data::Storage::Handler::File;
44    
45    
46  # ----------------------------------------  # ----------------------------------------
47  package main;  package main;
# Line 46  sub main { Line 52  sub main {
52        
53    my $defaults = {    my $defaults = {
54      options => {      options => {
55        'in-type' => 'content',        'in-type' => 'stdin',
56        #'in-type' => 'pathlist',        #'in-type' => 'pathlist',
57        #'regex' => '.*',        #'regex' => '.*',
58      },      },
# Line 74  sub main { Line 80  sub main {
80    
81  sub replace {  sub replace {
82        
83    if ($settings->{options}->{'in-type'} eq 'content') {    if ($settings->{options}->{'in-type'} eq 'stdin') {
84      my @buffer;      my @buffer;
85      my $pattern = $settings->{options}->{regex};      my $pattern = $settings->{options}->{regex};
86      while (<STDIN>) {      while (<STDIN>) {
# Line 85  sub replace { Line 91  sub replace {
91      }      }
92    
93    } elsif ($settings->{options}->{'in-type'} eq 'pathlist') {    } elsif ($settings->{options}->{'in-type'} eq 'pathlist') {
94      die("not implemented yet!");      #die("not implemented yet!");
95        my $pattern = $settings->{options}->{regex};
96        while (<STDIN>) {
97          chomp;
98          print "modifying $_: ";
99          my $file = Data::Storage::Handler::File->new( path => $_ );
100          #print Dumper($file), "\n";
101          #print Dumper($file->toString()), "\n";
102          #exit;
103          #print "replacing...", "\n";
104    
105          if ($file->matches($pattern)) {
106            print "MATCH - ";
107            
108            if (my $suffix_backup = $settings->{options}->{backup}) {
109              if ($suffix_backup eq '1') { $suffix_backup = 'bak'; }
110              #print "made backup of original-file";
111              $file->backup( { suffix => $suffix_backup } );
112            }        
113            
114            if ($settings->{options}->{infile}) {
115              print "replaced infile";
116              die("not yet implemented");
117            
118            } elsif ($settings->{options}->{overwrite}) {
119              print "overwritten";
120              $file->save();
121    
122            } elsif (my $suffix = $settings->{options}->{suffix}) {
123              print "suffixed with $suffix";
124              $file->addSuffix($suffix);
125              $file->save();
126            
127            } else {
128              print "no action (e.g. --infile|--suffix=tmp) applied";
129            }
130            #exit;
131            
132          } else {
133            print "NO match - not touched";
134          }
135          #print;
136          print "\n";
137          #print Dumper($content), "\n";
138          
139          #print "writing ....", "\n";
140          #exit;
141        }
142            
143            
144    }    }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed