#!/usr/bin/perl
# Copyright (c) 2016-2024 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";
}
