From 1fc700a56e105e3ab6b1a0044e7035e378fcbf55 Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Mon, 3 Jan 2022 12:23:15 +0100 Subject: [PATCH] Check config readability and global /etc/patrixrc --- scripts/patrix | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/scripts/patrix b/scripts/patrix index b6b4901..84ef1af 100644 --- a/scripts/patrix +++ b/scripts/patrix @@ -52,13 +52,29 @@ GetOptions( "perm_reset|reset-permission" => \$opt->{perm_reset} ); -if (-e File::HomeDir->my_home . "/.patrixrc" && !$opt->{conf}){ - $opt->{conf} = File::HomeDir->my_home . "/.patrixrc"; - debug("Using default config file $opt->{conf}"); +if (!$opt->{conf}){ + # Read global config if it exists and is readable + if (-f '/etc/patrixrc' && open(CONFIG, '<', '/etc/patrixrc')){ + $opt->{conf} = '/etc/patrixrc'; + close CONFIG; + debug("Using global config file $opt->{conf}"); + } + + # If there's a user defined config, use it instead + if (-f File::HomeDir->my_home . "/.patrixrc" && open(CONFIG, '<', File::HomeDir->my_home . "/.patrixrc")){ + $opt->{conf} = File::HomeDir->my_home . "/.patrixrc"; + close CONFIG; + debug("Using default config file $opt->{conf}"); + } } + if ($opt->{conf} && -e $opt->{conf}){ read_conf(); } +else { + die "No configuration found.\nYou should either create one in ~/.patrixrc " . + "or give the path of a custom config with --config /path/to/patrixrc"; +} # alias for --action=foo is --foo my @actions = qw(