From c7e3736d35527593235ae12bf6e879689ea17f66 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Thu, 23 Jul 2015 20:12:38 +0200 Subject: [PATCH] Add a command-line option --config to specify the configuration file. --- imapsync | 4 ++-- lib/Net/IMAP/Sync.pm | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/imapsync b/imapsync index 4ef47b3..a18e4cd 100755 --- a/imapsync +++ b/imapsync @@ -43,11 +43,11 @@ sub usage(;$) { print STDERR "TODO $NAME usage\n"; exit $rv; } -usage(1) unless GetOptions(\%CONFIG, qw/debug help|h quiet|q oneshot|1/); +usage(1) unless GetOptions(\%CONFIG, qw/debug help|h config=s quiet|q oneshot|1/); usage(0) if $CONFIG{help}; -my $CONFFILE = 'sync.ini'; +my $CONFFILE = delete $CONFIG{config} // 'imapsync'; my $CACHEDIR = './imapsync.cache'; # XXX use a config option my $DBFILE = "$CACHEDIR/imap.guilhem.org.db"; my $LOCKFILE = "$CACHEDIR/.imap.guilhem.org.lck"; diff --git a/lib/Net/IMAP/Sync.pm b/lib/Net/IMAP/Sync.pm index 0228f29..61930e7 100644 --- a/lib/Net/IMAP/Sync.pm +++ b/lib/Net/IMAP/Sync.pm @@ -65,6 +65,9 @@ sub read_config($$%) { my $section = shift; my %opts = (%OPTIONS, @_); + $conffile = ($ENV{XDG_CONFIG_HOME} // "$ENV{HOME}/.config") .'/'. $conffile + unless $conffile =~ /\A\//; # relative path + die "No such config file $conffile\n" unless defined $conffile and -f $conffile and -r $conffile; -- 2.39.2