diff options
Diffstat (limited to 'lib/Derf')
-rw-r--r-- | lib/Derf/Visual/WeatherIcons.pm.PL | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/lib/Derf/Visual/WeatherIcons.pm.PL b/lib/Derf/Visual/WeatherIcons.pm.PL new file mode 100644 index 0000000..b090380 --- /dev/null +++ b/lib/Derf/Visual/WeatherIcons.pm.PL @@ -0,0 +1,75 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.010; + +use autodie; +use MIME::Base64 qw(encode_base64); + +my ($out_file) = @ARGV; +my $share_dir = 'share/weather'; + +open(my $out_fh, '>', $out_file); +opendir(my $share_dh, $share_dir); + +print {$out_fh} <DATA>; + +for my $file (readdir($share_dh)) { + if (not -l "${share_dir}/${file}") { + next; + } + + open(my $fh, '<', "${share_dir}/${file}"); + my $content = do { local $/ = undef; <$fh> }; + close($fh); + + printf {$out_fh} ( + "______[ %s ]______\n%s\n", + $file, + encode_base64($content), + ); +} +closedir($share_dh); +close($out_fh); + + +__DATA__ +package Derf::Visual::WeatherIcons; +use strict; +use warnings; +use base 'Exporter'; +use Data::Section -setup; +use MIME::Base64 qw(decode_base64); + +our @EXPORT_OK = (); +our $VERSION = '0.1'; + +sub new { + my ($obj) = @_; + my $ref = {}; + return bless($ref, $obj); +} + +sub exists { + my ($self, $name) = @_; + + if (defined $self->section_data($name)) { + return 1; + } + return 0; +} + +sub get { + my ($self, $name) = @_; + my $data = $self->section_data($name); + + if (not $data) { + return undef; + } + + return decode_base64(${$data}); +} + +1; + +__DATA__ |