44 lines
778 B
Perl
Executable file
44 lines
778 B
Perl
Executable file
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use utf8;
|
|
use Getopt::Std;
|
|
use File::Slurp;
|
|
use Text::FrontMatter::YAML;
|
|
|
|
$::VERSION = "2.0.0";
|
|
|
|
getopts("ne", \my %opts);
|
|
|
|
my $metavar;
|
|
if (defined $opts{n}) {
|
|
# "new" post
|
|
$metavar = "created";
|
|
} elsif (defined $opts{e}) {
|
|
# "edited" post
|
|
$metavar = "modified";
|
|
} else {
|
|
die "Neither -n[ew] nor -e[dited] are defined!";
|
|
}
|
|
|
|
my $timestamp = time;
|
|
|
|
my $fname = shift @ARGV;
|
|
|
|
my $fdata = read_file($fname);
|
|
my $mdfm = Text::FrontMatter::YAML->new(
|
|
document_string => $fdata
|
|
);
|
|
|
|
my $metadata = $mdfm->frontmatter_hashref;
|
|
$metadata->{$metavar} = $timestamp;
|
|
|
|
my $wrfm = Text::FrontMatter::YAML->new(
|
|
frontmatter_hashref => $metadata,
|
|
data_text => $mdfm->data_text
|
|
);
|
|
|
|
write_file($fname, $wrfm->document_string);
|
|
|
|
1;
|