annotate lib/CLI.pm @ 50:ccfc78c23c66

auto-Update generated slides by script
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Tue, 18 Sep 2018 20:20:07 +0900
parents 7c19d3c0d027
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 package CLI;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 use strict;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 use warnings;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 use utf8;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
50
ccfc78c23c66 auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 42
diff changeset
6 #use DDP { deparse => 1 };
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 use Smart::Options;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 use Smart::Options::Declare;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 use Time::Piece;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 use Time::Seconds;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 use Capture::Tiny qw/capture/;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 use Path::Tiny;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 use File::chdir;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 use Carp qw/croak/;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 use Class::Tiny qw/ template root_dir/;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 use feature 'say';
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 sub run {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 my($self,@args) = @_;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 my $opt = Smart::Options->new->options(
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 file => { describe => 'target file', alias => 'f'}
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 );
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 $opt->subcmd(
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
26 new => Smart::Options->new(),
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
27 build => Smart::Options->new(),
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
28 open => Smart::Options->new->default('target' => 'slide.md'),
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
29 build_open => Smart::Options->new->default('target' => 'slide.md'),
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
30 upload => Smart::Options->new(),
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
31 memo => Smart::Options->new(),
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
32 edit => Smart::Options->new(),
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
33 zip => Smart::Options->new(),
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 );
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
36 my $result = $opt->parse(@args);
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 my $command = $result->{command} // "open";
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
39 my $option = $result->{cmd_option}->{f} || $result->{cmd_option}->{file} || 0;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
41 my $call = $self->can("cmd_$command");
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 croak 'undefine subcommand' unless $call;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 $self->$call($option);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 sub cmd_new {
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
47 my ($self) = @_;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 my ($y,$m,$d) = _y_m_d();
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
49 my $slide = path($self->root_dir)->child($y)->child($m)->child($d)->child('slide.md')->touchpath;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 path($self->template)->copy($slide);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 sub cmd_build {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 my($self,$target) = @_;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 if ($target){
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 $target = path($target);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 $self->_build($target->dirname,$target->basename);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 } else {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 $self->_build($self->_search_recently_day());
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 sub _build {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 my ($self,$dir,$target) = @_;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 $target //= 'slide.md';
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 say "[AUTO] BUILD at $dir/$target";
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 local $CWD = $dir;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 my ($stdout,$stderr,$exit) = capture {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 system("slideshow build ${target} -t s6cr");
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 };
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 croak "Perl can't build...." if $stderr;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 sub cmd_build_open {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 my($self,$target) = @_;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 $self->cmd_build($target);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 if($target){
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 $target =~ s/\.md$/\.html/;
41
deed6fa2e489 fix regex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 40
diff changeset
85 } else {
deed6fa2e489 fix regex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 40
diff changeset
86 my @targets = $self->_search_recently_day()->children(qr/(?<!pdf)\.html$/);
deed6fa2e489 fix regex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 40
diff changeset
87 $target = pop @targets;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 $self->cmd_open(path($target));
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 sub cmd_open {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 my($self,$slide) = @_;
41
deed6fa2e489 fix regex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 40
diff changeset
94
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 my $target;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 if ($slide){
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 $target = $slide;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 } else {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 $slide = 'slide.html';
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 $target = $self->_search_recently_day()->child($slide);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 if($target->realpath){
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 system 'open', ($target->realpath);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 } else {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 croak 'dont found slide.html';
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 sub cmd_upload {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 say "[AUTO]hg addremove";
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 my ($stdout,$stderr,$exit) = capture {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 system("hg addremove");
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 system("hg add");
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 };
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 croak "didn't add" if $stderr;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 say "[AUTO]hg commit -m auto-Update generated slides by script";
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 ($stdout,$stderr,$exit) = capture { system('hg commit -m "auto-Update generated slides by script"');};
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 if ($stderr) { say $stderr; croak "didn't commit";}
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 say "[AUTO]hg push";
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 ($stdout,$stderr,$exit) = capture { system('hg push'); };
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 if ( $stderr ) {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 say $stderr;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 croak "didn't commit";
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 } else {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 say $stdout;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 sub _y_m_d {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 my $t = localtime;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 # ex... 2018/02/14
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 ($t->strftime('%Y'), $t->strftime('%m'), $t->strftime('%d'));
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 sub _search_recently_day {
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
146 my ($self) = @_;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 my ($y,$m,$d) = _y_m_d();
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
148 my $root_dir = path($self->root_dir)->child($y)->child($m);
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
150 my $date = shift @{ [sort { $b->stat->mtime <=> $a->stat->mtime } $root_dir->children]};
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 return $date;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 sub cmd_memo {
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
155 my ($self) = @_;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 my ($y,$m,$d) = _y_m_d();
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
157 my $memo = path($self->root_dir)->child($y)->child($m)->child($d)->child('memo.txt')->touchpath;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 exec $ENV{EDITOR},($memo->realpath);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 sub cmd_edit {
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
162 my ($self) = @_;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 my $recent_day = $self->_search_recently_day();
40
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
164 my @targets = $recent_day->children(qr/\.md$/);
b887347d2d2b auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 39
diff changeset
165 my $target = pop @targets;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 exec $ENV{EDITOR},($target->realpath);
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 sub cmd_zip {
41
deed6fa2e489 fix regex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 40
diff changeset
170 my ($self) = @_;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 my $recent_day = $self->_search_recently_day();
41
deed6fa2e489 fix regex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 40
diff changeset
172 my $t = localtime;
deed6fa2e489 fix regex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 40
diff changeset
173 my $zip = $recent_day->child('zip.txt')->touch->opena;
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
174
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 $t-= ONE_WEEK;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176
39
202d1ab8775a auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
177 for(0..7){
36
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 my($y,$m,$d)=($t->strftime('%Y'), $t->strftime('%m'), $t->strftime('%d'));
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 my $memo = path($self->root_dir)->child($y)->child($m)->child($d)->child('memo.txt');
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 unless ($memo->exists) {
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 $t += ONE_DAY;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 next;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 say $zip "$y-$m-$d----";
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 say $zip $memo->slurp;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 say $zip "----------";
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 $t += ONE_DAY;
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 }
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192
74859abd87cc update cli tool
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 1;