From 5200d88f75e917276e0b4d720d7e668ea02d3a33 Mon Sep 17 00:00:00 2001 From: David Mosbach Date: Mon, 27 May 2024 14:05:42 +0000 Subject: [PATCH] chore(utils): configurable file extensions for renamer util --- utils/rename-fa.json | 1 + utils/renamer.pl | 23 ++++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/utils/rename-fa.json b/utils/rename-fa.json index f11cb68d4..ab1e4b2a3 100644 --- a/utils/rename-fa.json +++ b/utils/rename-fa.json @@ -1,4 +1,5 @@ { +"/defaultExtension": "svg", "seedling": "new", "check": "ok", "xmark": "not-ok", diff --git a/utils/renamer.pl b/utils/renamer.pl index 47e45476e..50ab3a9bb 100755 --- a/utils/renamer.pl +++ b/utils/renamer.pl @@ -19,6 +19,7 @@ usage() unless -f $renamefile; mkdir $todir; my %did = (); +my %params = (); my @errNex = (); @@ -29,10 +30,26 @@ close $fh; if($cont!~m#^\s*\{(.*)\}\s*$#s) { die "'$renamefile' not in an expected format; it should be an json-object" } my $core = $1; -while($core=~s#^\s*,?\s*"([^"/]+)"\s*:\s*"([^"/]+)"##) { +my %toRename = (); + +while($core=~s#^\s*,?\s*"(/?[^"/]+)"\s*:\s*"([^"/]+)"##) { my ($from, $to) = ($1, $2); - my $pfrom = "$fromdir/$from.svg"; - my $pto = "$todir/$to.svg"; + if ($from =~ m#^/#) { + $params{$from} = $to; + } else { + $toRename{$from} = $to; + } +} + +my $defaultExtension = $params{"/defaultExtension"}; + +for my $from (keys %toRename) { + my $to = $toRename{$from}; + my $pfrom = "$fromdir/$from"; + my $pto = "$todir/$to"; + if (defined $defaultExtension and $from !~ m#\.#) { + $_ .= ".$defaultExtension" for $pfrom, $pto; + } if(-e $pfrom) { print "Renaming '$pfrom' to '$pto'\n"; system("cp", $pfrom, $pto);