commit: feb500c197990874101ae84aa51a6b718e96ae79
Author: Jorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto <AT> gentoo
<DOT> org>
AuthorDate: Sun Jun 19 12:05:35 2016 +0000
Commit: Jorge Manuel B. S. Vicetto <jmbsvicetto <AT> gentoo <DOT> org>
CommitDate: Sun Jun 19 12:05:35 2016 +0000
URL: https://gitweb.gentoo.org/proj/elections.git/commit/?id=feb500c1
Allow running votify outside of /etc/elections and the repository dir.
Signed-off-by: Jorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto <AT>
gentoo.org>
Votify.pm | 12 ++++++------
votify | 8 +++++---
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/Votify.pm b/Votify.pm
index 48e5938..ed5b519 100644
--- a/Votify.pm
+++ b/Votify.pm
@@ -10,13 +10,13 @@ package Votify;
use POSIX;
use Cwd qw(abs_path);
+use File::Basename;
use File::Spec::Functions;
use List::Util;
use strict;
our $datefmt = '%Y-%m-%d %H:%M:%S UTC';
-
-our ($basedir) = List::Util::first { -d $_ } ('/etc/elections', '.');
+our ($basedir) = List::Util::first { -d $_ } ('/etc/elections',
dirname(__FILE__));
(our $zero = $0) =~ s,.*/,,;
our $version = '1.6';
@@ -41,16 +41,16 @@ sub validate_election_dir {
my $election_dir = $_;
my $election_name = $election_dir;
$election_name =~ /.*\//;
- return 0 unless -d $election_dir;
+ return 0 unless -d "$basedir/$election_dir";
return 0 if substr($election_name,0,1) eq ".";
my $valid = List::Util::reduce {
$a or $b ? 1 : 0;
} map {
my $file_valid = 0;
# Legacy naming:
- $file_valid = 1 if -f sprintf("%s/%s-%s", $election_name, $_,
$election_name);
+ $file_valid = 1 if -f sprintf("%s/%s-%s", "$basedir/$election_name",
$_, $election_name);
# New naming:
- $file_valid = 1 if -f sprintf("%s/%s", $election_name, $_);
+ $file_valid = 1 if -f sprintf("%s/%s", "$basedir/$election_name", $_);
#printf "File %s valid=%d\n", $_, $file_valid;
$file_valid;
} @REQUIRED_FILES;
@@ -88,7 +88,7 @@ sub get_single_election_hashref {
my %election;
foreach my $fn (@REQUIRED_FILES){
#print "Scan $fn\n";
- my @filenames = (sprintf("%s/%s", $election_name, $fn),
sprintf("%s/%s-%s", $election_name, $fn, $election_name));
+ my @filenames = (sprintf("%s/%s", "$basedir/$election_name", $fn),
sprintf("%s/%s-%s", "$basedir/$election_name", $fn, $election_name));
#print Dumper(@filenames);
my $filename = abs_path(List::Util::first { -f $_ } @filenames);
$election{"${fn}file"} = $filename;
diff --git a/votify b/votify
index e52881d..4fb688d 100755
--- a/votify
+++ b/votify
@@ -7,13 +7,15 @@
# votify: generate, verify and submit voting ballots for trustee elections
#
-#BEGIN { push @INC, (getpwnam 'fox2mike')[7].'/elections' }
BEGIN {
+ my $dirname;
if(-f '/etc/elections/Votify.pm') {
- push @INC, '/etc/elections';
+ $dirname = '/etc/elections';
} else {
- push @INC, '.' if -f 'Votify.pm';
+ use File::Basename;
+ $dirname = dirname(__FILE__);
}
+ push @INC, $dirname;
}
use POSIX;