From 1f07bf968d154664cfec5d2414b8a960f82e38ec Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 27 Jan 2021 16:27:14 -0700 Subject: gmi2email: enable specifying a list of subscriptions Signed-off-by: Sean Whitton --- gmi2email | 24 ++++++++++++------------ gmi2email.1.pod | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/gmi2email b/gmi2email index 4c567e9..54a3459 100755 --- a/gmi2email +++ b/gmi2email @@ -42,13 +42,13 @@ use Time::Local; use Mail::Field::AddrList; use XML::Feed; -my ($from, $to, $do_subs, $inline_images, $no_mail); +my ($from, $to, $subs, $inline_images, $no_mail); GetOptions - "from=s" => \$from, - "to=s" => \$to, - "subscriptions!" => \$do_subs, - "inline-images!" => \$inline_images, - "no-send!" => \$no_mail; + "from=s" => \$from, + "to=s" => \$to, + "subscriptions:s" => \$subs, + "inline-images!" => \$inline_images, + "no-send!" => \$no_mail; my $conf_r = $ENV{XDG_CONFIG_HOME} || catfile $ENV{HOME}, ".config"; my $conf_f = catfile $conf_r, "mailscripts", "gmi2email.config"; @@ -57,6 +57,8 @@ my $conf_f = catfile $conf_r, "mailscripts", "gmi2email.config"; or die "no config file nor sufficient command line options: don't know who to mail"; my $conf = Config::Tiny->new->read($conf_f); +$subs ||= catfile $conf_r, "mailscripts", "gmi2email.subscriptions" + if defined $subs; my %to_mail_opts = ( from => ( @@ -72,7 +74,7 @@ my %to_mail_opts = ( inline_images => $inline_images // $conf->{_}->{inline_images} // 0 ); -@ARGV or $do_subs or die "nothing to do\n"; +@ARGV or $subs or die "nothing to do\n"; for (@ARGV) { my $data; @@ -87,11 +89,9 @@ for (@ARGV) { $no_mail or gemtext_to_mail($data, %to_mail_opts)->send; } -exit unless $do_subs; - -my $subs_f = catfile $conf_r, "mailscripts", "gmi2email.subscriptions"; --e $subs_f or die "no list of subscriptions"; -open my $subs_fh, "<", $subs_f; +exit unless $subs; +-r $subs or die "file $subs not readable"; +open my $subs_fh, "<", $subs; my $db_r = $ENV{XDG_CACHE_HOME} || catfile $ENV{HOME}, ".cache"; my $db_d = catfile $db_r, "mailscripts"; diff --git a/gmi2email.1.pod b/gmi2email.1.pod index 6f12b84..b7e9108 100644 --- a/gmi2email.1.pod +++ b/gmi2email.1.pod @@ -59,7 +59,7 @@ URIs, e.g. =over 4 -=item B<--subscriptions> +=item B<--subscriptions>[=I] In addition to mailing any URIs/files specified on the command line, check subscribed gemlogs for new posts and send those too. Useful in a crontab. @@ -69,7 +69,7 @@ We support the subscription mechanism described at Atom feeds. B looks for a file with a list of gemini:// URIs to check for new -posts, one per line, in +posts, one per line, in I, or if that is not set, in B<$XDG_CONFIG_HOME/mailscripts/gmi2email.subscriptions>, or if XDG_CONFIG_HOME is not set, it falls back to trying to read B<~/.config/mailscripts/gmi2email.subscriptions>. -- cgit v1.2.3