summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-01-27 16:27:14 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-01-27 16:27:14 -0700
commit1f07bf968d154664cfec5d2414b8a960f82e38ec (patch)
treef8c39ab25d19e16e1e6a0c3a997347a3fc332da9
parent16b42aa5983e022e4662bad333765d284e52b61b (diff)
downloadmailscripts-1f07bf968d154664cfec5d2414b8a960f82e38ec.tar.gz
gmi2email: enable specifying a list of subscriptions
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rwxr-xr-xgmi2email24
-rw-r--r--gmi2email.1.pod4
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<FILE>]
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<gmi2email> 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<FILE>, 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>.