#!/usr/bin/perl use strict; my $shims_data = `sed -e '/var shims = /!d; s/var shims = //; s/;//' svg-with-js/js/fa-v4-shims.js`; $shims_data =~ s/null/undef/g; my $shims = eval($shims_data) or die($@); my %icons; # new icon name -> old icon names my %namespaces; # namespace -> old icons that are now in this namespace for my $entry (@{$shims}) { my ($old, $namespace, $new) = @{$entry}; if (defined $namespace) { $namespaces{$namespace} ||= []; push @{$namespaces{$namespace}}, ".fa.fa-$old"; } if (defined $new) { $icons{$new} ||= []; push @{$icons{$new}}, ".fa-$old:before"; } } open INPUT, ") { if (/^\.fa-(.*):before/) { my $icon = $1; my $list = $icons{$icon}; if (defined $list) { $list = join(",\n", @$list); s/ \{/,\n$list {/; } $found_icons = 1; } elsif ($found_icons && /^\.(fab|far|fas)/) { my $ns = $1; my $list = $namespaces{$ns}; if (defined $list) { $list = join(",\n", @$list); s/ \{/,\n$list {/; } } print; }