dg-x/ptouch.pl

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;