package Slideshow::Util; use strict; use warnings; use utf8; use Carp qw/ croak /; use base 'Exporter'; use FindBin; use lib "$FindBin::Bin/local/lib/perl5"; use Time::Piece; use feature 'say'; use Path::Tiny; our @EXPORT = qw/ new set_template /; sub set_template { my $template = shift; my $file = path($template); return $file; } sub new { my ($template,$root_directory_name) = @_; my $root_dir = path($root_directory_name); my $t = localtime; my $day_dir = $root_dir->child($t->strftime('%Y%m%d')); $day_dir->mkpath; my $slide = $day_dir->child('slide.md'); $slide->touch; # $slide->copy($template); $template->copy($slide); } sub make_recently { } sub make_pinpoint { } sub upload { use Capture::Tiny; my ($stdout,$stderr,$exit) = capture { system("hg addremove"); system("hg add"); }; unless($stderr){ say $stdout; } else { croak "didn't commit"; } ($stdout,$stderr,$exit) = capture { system('hg commit -m "auto-Update generated slides by script"'); }; unless($stderr){ say "$stdout"; } else { say $stderr; croak "didn't push"; } } 1;