Add script to automate string replaces
This commit is contained in:
42
contrib/devtools/replace.pl
Executable file
42
contrib/devtools/replace.pl
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/perl
|
||||
# Copyright (c) 2016-2022 The Hush developers
|
||||
# Distributed under the GPLv3 software license, see the accompanying
|
||||
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use autodie;
|
||||
use Data::Dumper;
|
||||
my ($find,$replace,@files) = @ARGV;
|
||||
|
||||
usage() unless $find && defined $replace;
|
||||
unless( @files ) {
|
||||
printf "No files to replace stuff!";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
my $fh;
|
||||
print "Going to replace $find with $replace in " . scalar(@files) . " files\n";
|
||||
|
||||
for my $file (@files) {
|
||||
if (-d $file) {
|
||||
printf "Skipping directory $file\n";
|
||||
next;
|
||||
}
|
||||
unless ( -e $file ) {
|
||||
printf "$file does not exist!\n";
|
||||
next;
|
||||
}
|
||||
open $fh, '<', $file;
|
||||
my $content = join('',<$fh>);
|
||||
$content =~ s/\Q$find\E/$replace/g;
|
||||
close $fh;
|
||||
|
||||
open $fh, '>', $file;
|
||||
print $fh $content;
|
||||
close $fh;
|
||||
}
|
||||
|
||||
sub usage {
|
||||
die "$0 stringtofind stringtoreplace file [more files...]\n";
|
||||
}
|
||||
Reference in New Issue
Block a user