]> git.g-eek.se Git - interimap.git/commitdiff
Add a command-line option --config to specify the configuration file.
authorGuilhem Moulin <guilhem@fripost.org>
Thu, 23 Jul 2015 18:12:38 +0000 (20:12 +0200)
committerGuilhem Moulin <guilhem@fripost.org>
Thu, 23 Jul 2015 18:12:38 +0000 (20:12 +0200)
imapsync
lib/Net/IMAP/Sync.pm

index 4ef47b3fb57780e982708eb6bf4a29d1333c6014..a18e4cdef5f4b63db976d16b9947198208319c01 100755 (executable)
--- 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";
index 0228f29dfa04e160b4c452b672b957daf8af15af..61930e7347c7acc12be0156b9c50b659a3f3ce3e 100644 (file)
@@ -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;