favicon_mongler.pl 801 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use lib 'lib';
  5. use Cwd ();
  6. use File::Basename ();
  7. die "Usage:\n favicon_mongler.pl /path/to/favicon.svg" unless $ARGV[0];
  8. my $icon = Cwd::abs_path($ARGV[0]);
  9. my $bin = `which inkscape`;
  10. chomp($bin);
  11. die "Please install inkscape" if !$bin;
  12. my $dir = File::Basename::dirname($icon) || die "Can't figure out dir from $icon";
  13. my %files = (
  14. 180 => 'png',
  15. 192 => 'png',
  16. 512 => 'png',
  17. );
  18. foreach my $size ( sort { $b <=> $a } keys(%files) ) {
  19. print "*** Generating ${size}x${size} .$files{$size} now... ***\n";
  20. my @cmd = ( $bin, '-w', $size, '-h', $size, $icon, '-e', "$dir/favicon-$size.$files{$size}" );
  21. system(@cmd) && die "Failed to run @cmd: $!";
  22. print "*** Wrote $dir/favicon-$size.$files{$size} ***\n\n";
  23. }
  24. 0;