dg-x/ptouch.pl
snow flurry e1b3cb1ea8 README: Change structure a bit
These scripts will need to be moved to a scripts/ directory anyway, so
might as well have it be a submodule of another repository.
2022-03-04 19:03:40 -08:00

48 lines
962 B
Perl
Executable file

#!/usr/bin/env perl
use strict;
use utf8;
use Getopt::Std;
use POSIX qw(strftime);
use Tie::File;
$::VERSION = "1.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 $pretty_date = strftime "%Y-%m-%d %H:%M", localtime;
my $fname = shift @ARGV;
tie my @fharr, 'Tie::File', $fname or die $!;
my $done = 0;
for (@fharr) {
if (s/^$metavar=.+/$metavar=$pretty_date/) {
print "$fname:$.: Overwriting existing \`$metavar\'\n";
$done++;
}
if (s/^(---)$/$metavar=$pretty_date\n$1/) {
print "$fname:$.: Inserting new \`$metavar\'\n";
$done++;
}
last if ($done);
}
if (!$done) {
print "$fname: No content and no \`$metavar\', inserting at end\n";
push @fharr, "$metavar=$pretty_date";
}
untie @fharr;