diff options
author | Guilhem Moulin <guilhem@fripost.org> | 2015-07-23 20:12:38 +0200 |
---|---|---|
committer | Guilhem Moulin <guilhem@fripost.org> | 2015-07-23 20:12:38 +0200 |
commit | c7e3736d35527593235ae12bf6e879689ea17f66 (patch) | |
tree | 8d28a61e9b28af750797479a2a89997a1aa066c9 | |
parent | b634b665a4a636460562ab0718770e0845da22a5 (diff) |
Add a command-line option --config to specify the configuration file.
-rwxr-xr-x | imapsync | 4 | ||||
-rw-r--r-- | lib/Net/IMAP/Sync.pm | 3 |
2 files changed, 5 insertions, 2 deletions
@@ -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; |