#!/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, "<web-fonts-with-css/css/fontawesome-all.css";
my $found_icons = 0;
while (<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;
}
