/[cvs]/joko/Scripts/replace/replace_cvs.pl
ViewVC logotype

Annotation of /joko/Scripts/replace/replace_cvs.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Thu Oct 17 04:45:45 2002 UTC (21 years, 9 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
+ new

1 joko 1.1 #!/usr/bin/perl
2    
3     ## -----------------------------------------------------------------------------------------
4     ## $Id$
5     ## -----------------------------------------------------------------------------------------
6     ## $Log$
7     ##
8     ## -----------------------------------------------------------------------------------------
9    
10     use strict;
11     use warnings;
12    
13     use Carp;
14     use File::Find;
15     use Getopt::Long;
16    
17     my $basedir;
18     my $pattern_substitution;
19     my $pattern_filename;
20     my $verbose;
21     my $dryrun;
22    
23     GetOptions(
24     'basedir=s' => \$basedir,
25     'file-pattern=s' => \$pattern_substitution,
26     'substitution-pattern=s' => \$pattern_filename,
27     'dry-run=s' => \$dryrun,
28     #'interactive=s' => \$verbose,
29     'verbose=s' => \$verbose,
30     #'report=s' => \$verbose,
31     'usage' => \&usage,
32     'help' => \&usage,
33     );
34    
35     sub usage {
36     print <<EOU;
37    
38     replace.pl -- replaces contents in files by applying regular expression
39    
40     --substitution-pattern: give regex-pattern for substitution (e.g. "s/world/earth/")
41     --file-pattern:
42     --basedir
43    
44     EOU
45    
46     }
47    
48    
49     my $pattern = shift;
50     if (!$pattern) {
51     print ("no pattern!");
52     #usage();
53     exit;
54     }
55    
56     my $path = shift;
57     if (!$path) {
58     print ("no path!");
59     #usage();
60     exit;
61     }
62    
63     my $pattern_file = '/CVS/Root';
64    
65     sub replaceInFile {
66     my $filename = shift;
67     my $filename_bak = $filename . ".bak";
68     open(RH, $filename);
69     open(WH, '>' . $filename_bak);
70     while(<RH>) {
71     eval($pattern);
72     #print $_, "\n";
73     print WH $_;
74     }
75     close(WH);
76     close(RH);
77    
78     unlink $filename;
79     rename $filename_bak, $filename;
80    
81     }
82    
83     sub wanted {
84     if ($File::Find::name =~ m/$pattern_file$/) {
85     print $File::Find::name, "\n";
86     replaceInFile($File::Find::name);
87     #exit;
88     }
89     }
90    
91     sub main {
92     find(\&wanted, $path);
93     }
94    
95     main();

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