diff --git a/.perlcriticrc b/.perlcriticrc index ddddcada..9d756697 100644 --- a/.perlcriticrc +++ b/.perlcriticrc @@ -1,4 +1,4 @@ theme = community # 5 is the least complainy, 1 is the most complainy -severity = 5 +severity = 4 diff --git a/flake.nix b/flake.nix index 85b226de..1982e8b9 100644 --- a/flake.nix +++ b/flake.nix @@ -454,14 +454,14 @@ DigestSHA1 EmailMIME EmailSender - FileSlurp + FileSlurper FileWhich final.nix.perl-bindings git IOCompress IPCRun JSON - JSONAny + JSONMaybeXS JSONXS LWP LWPProtocolHttps diff --git a/src/Makefile.PL b/src/Makefile.PL index 36b3e992..9b04da7f 100644 --- a/src/Makefile.PL +++ b/src/Makefile.PL @@ -1,5 +1,7 @@ # IMPORTANT: if you delete this file your app will not work as # expected. you have been warned +use strict; +use warnings; use inc::Module::Install; name 'Hydra'; diff --git a/src/lib/Hydra/Config.pm b/src/lib/Hydra/Config.pm index a681f1c0..bb991822 100644 --- a/src/lib/Hydra/Config.pm +++ b/src/lib/Hydra/Config.pm @@ -1,5 +1,8 @@ package Hydra::Config; +use strict; +use warnings; + our %configGeneralOpts = (-UseApacheInclude => 1, -IncludeAgain => 1, -IncludeRelative => 1); 1; diff --git a/src/lib/Hydra/Controller/API.pm b/src/lib/Hydra/Controller/API.pm index b2167b5b..474a0021 100644 --- a/src/lib/Hydra/Controller/API.pm +++ b/src/lib/Hydra/Controller/API.pm @@ -8,11 +8,10 @@ use Hydra::Helper::Nix; use Hydra::Helper::CatalystUtils; use Hydra::Controller::Project; use JSON; -use JSON::Any; +use JSON::MaybeXS; use DateTime; use Digest::SHA qw(sha256_hex); use Text::Diff; -use File::Slurp; use IPC::Run qw(run); @@ -67,7 +66,7 @@ sub latestbuilds : Chained('api') PathPart('latestbuilds') Args(0) { push @list, buildToHash($_) foreach @latest; $c->stash->{'plain'} = { - data => scalar (JSON::Any->objToJson(\@list)) + data => scalar (encode_json(\@list)) }; $c->forward('Hydra::View::Plain'); } @@ -108,7 +107,7 @@ sub jobsets : Chained('api') PathPart('jobsets') Args(0) { push @list, jobsetToHash($_) foreach @jobsets; $c->stash->{'plain'} = { - data => scalar (JSON::Any->objToJson(\@list)) + data => scalar (encode_json(\@list)) }; $c->forward('Hydra::View::Plain'); } @@ -126,7 +125,7 @@ sub queue : Chained('api') PathPart('queue') Args(0) { push @list, buildToHash($_) foreach @builds; $c->stash->{'plain'} = { - data => scalar (JSON::Any->objToJson(\@list)) + data => scalar (encode_json(\@list)) }; $c->forward('Hydra::View::Plain'); } @@ -170,7 +169,7 @@ sub nrbuilds : Chained('api') PathPart('nrbuilds') Args(0) { @arr = reverse(@arr); $c->stash->{'plain'} = { - data => scalar (JSON::Any->objToJson(\@arr)) + data => scalar (encode_json(\@arr)) }; $c->forward('Hydra::View::Plain'); } diff --git a/src/lib/Hydra/Controller/Build.pm b/src/lib/Hydra/Controller/Build.pm index 765dcbd7..27535f2e 100644 --- a/src/lib/Hydra/Controller/Build.pm +++ b/src/lib/Hydra/Controller/Build.pm @@ -8,7 +8,6 @@ use Hydra::Helper::Nix; use Hydra::Helper::CatalystUtils; use File::Basename; use File::stat; -use File::Slurp; use Data::Dump qw(dump); use Nix::Store; use Nix::Config; diff --git a/src/lib/Hydra/Controller/Job.pm b/src/lib/Hydra/Controller/Job.pm index becd364b..378887ea 100644 --- a/src/lib/Hydra/Controller/Job.pm +++ b/src/lib/Hydra/Controller/Job.pm @@ -6,6 +6,7 @@ use warnings; use base 'Hydra::Base::Controller::ListBuilds'; use Hydra::Helper::Nix; use Hydra::Helper::CatalystUtils; +use JSON::MaybeXS; use Net::Prometheus; sub job : Chained('/') PathPart('job') CaptureArgs(3) { @@ -50,7 +51,7 @@ sub shield :Chained('job') PathPart('shield') Args(0) { $c->response->content_type('application/json'); $c->stash->{'plain'} = { - data => scalar (JSON::Any->objToJson( + data => scalar (encode_json( { schemaVersion => 1, label => "hydra build", diff --git a/src/lib/Hydra/Controller/User.pm b/src/lib/Hydra/Controller/User.pm index 852dd16d..f22075b9 100644 --- a/src/lib/Hydra/Controller/User.pm +++ b/src/lib/Hydra/Controller/User.pm @@ -4,7 +4,7 @@ use utf8; use strict; use warnings; use base 'Hydra::Base::Controller::REST'; -use File::Slurp; +use File::Slurper qw(read_text); use Crypt::RandPasswd; use Digest::SHA1 qw(sha1_hex); use Hydra::Helper::Nix; @@ -165,7 +165,7 @@ sub github_login :Path('/github-login') Args(0) { my $client_id = $c->config->{github_client_id} or die "github_client_id not configured."; my $client_secret = $c->config->{github_client_secret} // do { my $client_secret_file = $c->config->{github_client_secret_file} or die "github_client_secret nor github_client_secret_file is configured."; - my $client_secret = read_file($client_secret_file); + my $client_secret = read_text($client_secret_file); $client_secret =~ s/\s+//; $client_secret; }; diff --git a/src/lib/Hydra/Event.pm b/src/lib/Hydra/Event.pm index cd8bdde2..e3954308 100644 --- a/src/lib/Hydra/Event.pm +++ b/src/lib/Hydra/Event.pm @@ -1,6 +1,7 @@ package Hydra::Event; use strict; +use warnings; use Hydra::Event::BuildFinished; use Hydra::Event::BuildStarted; use Hydra::Event::StepFinished; diff --git a/src/lib/Hydra/Helper/AddBuilds.pm b/src/lib/Hydra/Helper/AddBuilds.pm index d928943a..bf520321 100644 --- a/src/lib/Hydra/Helper/AddBuilds.pm +++ b/src/lib/Hydra/Helper/AddBuilds.pm @@ -1,6 +1,7 @@ package Hydra::Helper::AddBuilds; use strict; +use warnings; use utf8; use Encode; use JSON; @@ -14,7 +15,6 @@ use File::stat; use File::Path; use File::Temp; use File::Spec; -use File::Slurp; use Hydra::Helper::CatalystUtils; our @ISA = qw(Exporter); diff --git a/src/lib/Hydra/Helper/CatalystUtils.pm b/src/lib/Hydra/Helper/CatalystUtils.pm index cd3a0fd7..0b48e455 100644 --- a/src/lib/Hydra/Helper/CatalystUtils.pm +++ b/src/lib/Hydra/Helper/CatalystUtils.pm @@ -2,6 +2,7 @@ package Hydra::Helper::CatalystUtils; use utf8; use strict; +use warnings; use Exporter; use Readonly; use Nix::Store; diff --git a/src/lib/Hydra/Helper/Email.pm b/src/lib/Hydra/Helper/Email.pm index 44366f43..b66f427b 100644 --- a/src/lib/Hydra/Helper/Email.pm +++ b/src/lib/Hydra/Helper/Email.pm @@ -1,10 +1,10 @@ package Hydra::Helper::Email; use strict; +use warnings; use Email::MIME; use Email::Sender::Simple qw(sendmail); use Exporter 'import'; -use File::Slurp; use Hydra::Helper::Nix; use Sys::Hostname::Long; diff --git a/src/lib/Hydra/Helper/Escape.pm b/src/lib/Hydra/Helper/Escape.pm index 3037951f..8458f885 100644 --- a/src/lib/Hydra/Helper/Escape.pm +++ b/src/lib/Hydra/Helper/Escape.pm @@ -1,6 +1,7 @@ package Hydra::Helper::Escape; use strict; +use warnings; use base qw(Exporter); use Hydra::Helper::AttributeSet; diff --git a/src/lib/Hydra/Helper/Nix.pm b/src/lib/Hydra/Helper/Nix.pm index bd294b73..e76ac18b 100644 --- a/src/lib/Hydra/Helper/Nix.pm +++ b/src/lib/Hydra/Helper/Nix.pm @@ -1,6 +1,7 @@ package Hydra::Helper::Nix; use strict; +use warnings; use Exporter; use File::Path; use File::Basename; @@ -65,8 +66,8 @@ sub getStatsdConfig { my %statsd = defined $cfg ? ref $cfg eq "HASH" ? %$cfg : ($cfg) : (); return { - "host" => %statsd{'host'} // 'localhost', - "port" => %statsd{'port'} // 8125, + "host" => $statsd{'host'} // 'localhost', + "port" => $statsd{'port'} // 8125, } } @@ -83,20 +84,20 @@ sub getHydraNotifyPrometheusConfig { return undef; } - my $cfg = $cfg->{prometheus}; - if (!defined($cfg)) { + my $promcfg = $cfg->{prometheus}; + if (!defined($promcfg)) { return undef; } - if (ref $cfg ne "HASH") { + if (ref $promcfg ne "HASH") { print STDERR "Error reading Hydra's configuration file: hydra_notify.prometheus should be a block.\n"; return undef; } - if (defined($cfg->{"listen_address"}) && defined($cfg->{"port"})) { + if (defined($promcfg->{"listen_address"}) && defined($promcfg->{"port"})) { return { - "listen_address" => $cfg->{'listen_address'}, - "port" => $cfg->{'port'}, + "listen_address" => $promcfg->{'listen_address'}, + "port" => $promcfg->{'port'}, }; } else { print STDERR "Error reading Hydra's configuration file: hydra_notify.prometheus should include listen_address and port.\n"; @@ -140,8 +141,8 @@ sub registerRoot { my ($path) = @_; my $link = gcRootFor $path; return if -e $link; - open ROOT, ">$link" or die "cannot create GC root `$link' to `$path'"; - close ROOT; + open my $root, ">$link" or die "cannot create GC root `$link' to `$path'"; + close $root; } @@ -305,7 +306,8 @@ sub getEvals { { order_by => "id DESC", rows => 1 }); my $curInfo = getEvalInfo($cache, $curEval); - my $prevInfo = getEvalInfo($cache, $prevEval) if defined $prevEval; + my $prevInfo; + $prevInfo = getEvalInfo($cache, $prevEval) if defined $prevEval; # Compute what inputs changed between each eval. my @changedInputs; @@ -340,12 +342,12 @@ sub getMachines { for my $machinesFile (@machinesFiles) { next unless -e $machinesFile; - open CONF, "<$machinesFile" or die; - while () { + open my $conf, "<$machinesFile" or die; + while (my $line = <$conf>) { chomp; s/\#.*$//g; next if /^\s*$/; - my @tokens = split /\s/, $_; + my @tokens = split /\s/, $line; my @supportedFeatures = split(/,/, $tokens[5] || ""); my @mandatoryFeatures = split(/,/, $tokens[6] || ""); $machines{$tokens[0]} = @@ -357,7 +359,7 @@ sub getMachines { , mandatoryFeatures => [ @mandatoryFeatures ] }; } - close CONF; + close $conf; } return \%machines; diff --git a/src/lib/Hydra/Model/DB.pm b/src/lib/Hydra/Model/DB.pm index 7514302e..d3a401c3 100644 --- a/src/lib/Hydra/Model/DB.pm +++ b/src/lib/Hydra/Model/DB.pm @@ -1,6 +1,7 @@ package Hydra::Model::DB; use strict; +use warnings; use base 'Catalyst::Model::DBIC::Schema'; sub getHydraPath { diff --git a/src/lib/Hydra/Plugin.pm b/src/lib/Hydra/Plugin.pm index 119d2738..a3526427 100644 --- a/src/lib/Hydra/Plugin.pm +++ b/src/lib/Hydra/Plugin.pm @@ -1,6 +1,7 @@ package Hydra::Plugin; use strict; +use warnings; use Module::Pluggable search_path => "Hydra::Plugin", instantiate => 'new'; diff --git a/src/lib/Hydra/Plugin/BazaarInput.pm b/src/lib/Hydra/Plugin/BazaarInput.pm index db26172f..458f5141 100644 --- a/src/lib/Hydra/Plugin/BazaarInput.pm +++ b/src/lib/Hydra/Plugin/BazaarInput.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::BazaarInput; use strict; +use warnings; use parent 'Hydra::Plugin'; use Digest::SHA qw(sha256_hex); use File::Path; diff --git a/src/lib/Hydra/Plugin/BitBucketPulls.pm b/src/lib/Hydra/Plugin/BitBucketPulls.pm index 1a50f6ec..5371d5f0 100644 --- a/src/lib/Hydra/Plugin/BitBucketPulls.pm +++ b/src/lib/Hydra/Plugin/BitBucketPulls.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::BitBucketPulls; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use LWP::UserAgent; diff --git a/src/lib/Hydra/Plugin/BitBucketStatus.pm b/src/lib/Hydra/Plugin/BitBucketStatus.pm index 097bed00..72ed3b6b 100644 --- a/src/lib/Hydra/Plugin/BitBucketStatus.pm +++ b/src/lib/Hydra/Plugin/BitBucketStatus.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::BitBucketStatus; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use JSON; diff --git a/src/lib/Hydra/Plugin/CircleCINotification.pm b/src/lib/Hydra/Plugin/CircleCINotification.pm index 398fe066..a2eb26a4 100644 --- a/src/lib/Hydra/Plugin/CircleCINotification.pm +++ b/src/lib/Hydra/Plugin/CircleCINotification.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::CircleCINotification; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use LWP::UserAgent; diff --git a/src/lib/Hydra/Plugin/CompressLog.pm b/src/lib/Hydra/Plugin/CompressLog.pm index bf8d4327..10e8f6cc 100644 --- a/src/lib/Hydra/Plugin/CompressLog.pm +++ b/src/lib/Hydra/Plugin/CompressLog.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::CompressLog; use strict; +use warnings; use utf8; use parent 'Hydra::Plugin'; use Hydra::Helper::CatalystUtils; diff --git a/src/lib/Hydra/Plugin/CoverityScan.pm b/src/lib/Hydra/Plugin/CoverityScan.pm index f395100f..c7b39d02 100644 --- a/src/lib/Hydra/Plugin/CoverityScan.pm +++ b/src/lib/Hydra/Plugin/CoverityScan.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::CoverityScan; use strict; +use warnings; use parent 'Hydra::Plugin'; use File::Basename; use LWP::UserAgent; @@ -51,12 +52,12 @@ sub buildFinished { my $tarballs = "$storePath/tarballs"; my $covTarball; - opendir TARBALLS, $tarballs or die; - while (readdir TARBALLS) { - next unless $_ =~ /.*-coverity-int\.(tgz|lzma|xz|bz2|zip)$/; - $covTarball = "$tarballs/$_"; last; + opendir my $tarballs_handle, $tarballs or die; + while (my $file = readdir $tarballshandle) { + next unless $file =~ /.*-coverity-int\.(tgz|lzma|xz|bz2|zip)$/; + $covTarball = "$tarballs/$file"; last; } - closedir TARBALLS; + closedir $tarballs_handle; unless (defined $covTarball) { print STDERR "CoverityScan.pm: Coverity tarball not found in $tarballs; skipping upload...\n"; @@ -81,7 +82,8 @@ sub buildFinished { my $versionRE = "(?:[A-Za-z0-9\.\-]+)"; my $shortName = basename($covTarball); - my $version = $2 if $shortName =~ /^($pkgNameRE)-($versionRE)-coverity-int.*$/; + my $version; + $version = $2 if $shortName =~ /^($pkgNameRE)-($versionRE)-coverity-int.*$/; die "CoverityScan.pm: Couldn't parse build version for upload! ($shortName)" unless defined $version; diff --git a/src/lib/Hydra/Plugin/DarcsInput.pm b/src/lib/Hydra/Plugin/DarcsInput.pm index 0091819a..42f6a9a4 100644 --- a/src/lib/Hydra/Plugin/DarcsInput.pm +++ b/src/lib/Hydra/Plugin/DarcsInput.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::DarcsInput; use strict; +use warnings; use parent 'Hydra::Plugin'; use Digest::SHA qw(sha256_hex); use File::Path; diff --git a/src/lib/Hydra/Plugin/DeclarativeJobsets.pm b/src/lib/Hydra/Plugin/DeclarativeJobsets.pm index 2b6771b5..f59fa858 100644 --- a/src/lib/Hydra/Plugin/DeclarativeJobsets.pm +++ b/src/lib/Hydra/Plugin/DeclarativeJobsets.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::DeclarativeJobsets; use strict; +use warnings; use parent 'Hydra::Plugin'; use Hydra::Helper::AddBuilds; diff --git a/src/lib/Hydra/Plugin/EmailNotification.pm b/src/lib/Hydra/Plugin/EmailNotification.pm index 4e6c7809..721365e1 100644 --- a/src/lib/Hydra/Plugin/EmailNotification.pm +++ b/src/lib/Hydra/Plugin/EmailNotification.pm @@ -2,6 +2,7 @@ package Hydra::Plugin::EmailNotification; use utf8; use strict; +use warnings; use parent 'Hydra::Plugin'; use POSIX qw(strftime); use Template; diff --git a/src/lib/Hydra/Plugin/GitInput.pm b/src/lib/Hydra/Plugin/GitInput.pm index 848c0dee..cd8d23e2 100644 --- a/src/lib/Hydra/Plugin/GitInput.pm +++ b/src/lib/Hydra/Plugin/GitInput.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::GitInput; use strict; +use warnings; use parent 'Hydra::Plugin'; use Digest::SHA qw(sha256_hex); use File::Path; diff --git a/src/lib/Hydra/Plugin/GiteaStatus.pm b/src/lib/Hydra/Plugin/GiteaStatus.pm index 75796053..567dfd09 100644 --- a/src/lib/Hydra/Plugin/GiteaStatus.pm +++ b/src/lib/Hydra/Plugin/GiteaStatus.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::GiteaStatus; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; diff --git a/src/lib/Hydra/Plugin/GithubPulls.pm b/src/lib/Hydra/Plugin/GithubPulls.pm index 6a3cc951..fb497c76 100644 --- a/src/lib/Hydra/Plugin/GithubPulls.pm +++ b/src/lib/Hydra/Plugin/GithubPulls.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::GithubPulls; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use LWP::UserAgent; diff --git a/src/lib/Hydra/Plugin/GithubRefs.pm b/src/lib/Hydra/Plugin/GithubRefs.pm index 408159dd..1de2672d 100644 --- a/src/lib/Hydra/Plugin/GithubRefs.pm +++ b/src/lib/Hydra/Plugin/GithubRefs.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::GithubRefs; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use LWP::UserAgent; diff --git a/src/lib/Hydra/Plugin/GithubStatus.pm b/src/lib/Hydra/Plugin/GithubStatus.pm index e3dfc533..cda7426a 100644 --- a/src/lib/Hydra/Plugin/GithubStatus.pm +++ b/src/lib/Hydra/Plugin/GithubStatus.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::GithubStatus; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use JSON; diff --git a/src/lib/Hydra/Plugin/GitlabPulls.pm b/src/lib/Hydra/Plugin/GitlabPulls.pm index b44a1a98..3249ecf8 100644 --- a/src/lib/Hydra/Plugin/GitlabPulls.pm +++ b/src/lib/Hydra/Plugin/GitlabPulls.pm @@ -15,6 +15,7 @@ package Hydra::Plugin::GitlabPulls; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use LWP::UserAgent; diff --git a/src/lib/Hydra/Plugin/GitlabStatus.pm b/src/lib/Hydra/Plugin/GitlabStatus.pm index 483d99bd..d19877ed 100644 --- a/src/lib/Hydra/Plugin/GitlabStatus.pm +++ b/src/lib/Hydra/Plugin/GitlabStatus.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::GitlabStatus; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use JSON; diff --git a/src/lib/Hydra/Plugin/HipChatNotification.pm b/src/lib/Hydra/Plugin/HipChatNotification.pm index 9a7385c4..415cfafb 100644 --- a/src/lib/Hydra/Plugin/HipChatNotification.pm +++ b/src/lib/Hydra/Plugin/HipChatNotification.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::HipChatNotification; use strict; +use warnings; use parent 'Hydra::Plugin'; use LWP::UserAgent; use Hydra::Helper::CatalystUtils; diff --git a/src/lib/Hydra/Plugin/InfluxDBNotification.pm b/src/lib/Hydra/Plugin/InfluxDBNotification.pm index 21a3fa31..62200cc9 100644 --- a/src/lib/Hydra/Plugin/InfluxDBNotification.pm +++ b/src/lib/Hydra/Plugin/InfluxDBNotification.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::InfluxDBNotification; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use LWP::UserAgent; diff --git a/src/lib/Hydra/Plugin/MercurialInput.pm b/src/lib/Hydra/Plugin/MercurialInput.pm index 8a9b4b43..3aaa0ba3 100644 --- a/src/lib/Hydra/Plugin/MercurialInput.pm +++ b/src/lib/Hydra/Plugin/MercurialInput.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::MercurialInput; use strict; +use warnings; use parent 'Hydra::Plugin'; use Digest::SHA qw(sha256_hex); use File::Path; diff --git a/src/lib/Hydra/Plugin/PathInput.pm b/src/lib/Hydra/Plugin/PathInput.pm index d5c490f0..e7d98da2 100644 --- a/src/lib/Hydra/Plugin/PathInput.pm +++ b/src/lib/Hydra/Plugin/PathInput.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::PathInput; use strict; +use warnings; use parent 'Hydra::Plugin'; use POSIX qw(strftime); use Hydra::Helper::Nix; diff --git a/src/lib/Hydra/Plugin/RunCommand.pm b/src/lib/Hydra/Plugin/RunCommand.pm index 7cfb63c5..33295e50 100644 --- a/src/lib/Hydra/Plugin/RunCommand.pm +++ b/src/lib/Hydra/Plugin/RunCommand.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::RunCommand; use strict; +use warnings; use parent 'Hydra::Plugin'; use experimental 'smartmatch'; use JSON; diff --git a/src/lib/Hydra/Plugin/S3Backup.pm b/src/lib/Hydra/Plugin/S3Backup.pm index 346cf239..bdd23b2f 100644 --- a/src/lib/Hydra/Plugin/S3Backup.pm +++ b/src/lib/Hydra/Plugin/S3Backup.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::S3Backup; use strict; +use warnings; use parent 'Hydra::Plugin'; use File::Temp; use File::Basename; diff --git a/src/lib/Hydra/Plugin/SlackNotification.pm b/src/lib/Hydra/Plugin/SlackNotification.pm index 387f92c4..5320dd7b 100644 --- a/src/lib/Hydra/Plugin/SlackNotification.pm +++ b/src/lib/Hydra/Plugin/SlackNotification.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::SlackNotification; use strict; +use warnings; use parent 'Hydra::Plugin'; use HTTP::Request; use LWP::UserAgent; diff --git a/src/lib/Hydra/Plugin/SoTest.pm b/src/lib/Hydra/Plugin/SoTest.pm index aed7a1b8..5b45f153 100644 --- a/src/lib/Hydra/Plugin/SoTest.pm +++ b/src/lib/Hydra/Plugin/SoTest.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::SoTest; use strict; +use warnings; use parent 'Hydra::Plugin'; use Hydra::Helper::CatalystUtils; use HTTP::Request; @@ -101,8 +102,8 @@ sub buildFinished { open( $authfile, "<", $sotest->{authfile} ) or die "Cannot open Sotest authfile \${\$sotest->{authfile}}"; - while (<$authfile>) { - if ( $_ =~ /(.+):(.+)/m ) { + while (my $line = <$authfile>) { + if ( $line =~ /(.+):(.+)/m ) { $sotest_username = $1; $sotest_password = $2; } diff --git a/src/lib/Hydra/Plugin/SubversionInput.pm b/src/lib/Hydra/Plugin/SubversionInput.pm index a8183e2c..7879364e 100644 --- a/src/lib/Hydra/Plugin/SubversionInput.pm +++ b/src/lib/Hydra/Plugin/SubversionInput.pm @@ -1,6 +1,7 @@ package Hydra::Plugin::SubversionInput; use strict; +use warnings; use parent 'Hydra::Plugin'; use Digest::SHA qw(sha256_hex); use Hydra::Helper::Nix; diff --git a/src/lib/Hydra/View/JSON.pm b/src/lib/Hydra/View/JSON.pm index f2ab1fc8..d8924ac3 100644 --- a/src/lib/Hydra/View/JSON.pm +++ b/src/lib/Hydra/View/JSON.pm @@ -1,3 +1,5 @@ package Hydra::View::JSON; +use strict; +use warnings; use base qw(Catalyst::View::JSON); 1; diff --git a/src/lib/Hydra/View/NARInfo.pm b/src/lib/Hydra/View/NARInfo.pm index 460bd706..44db78b1 100644 --- a/src/lib/Hydra/View/NARInfo.pm +++ b/src/lib/Hydra/View/NARInfo.pm @@ -1,5 +1,7 @@ package Hydra::View::NARInfo; +use strict; +use warnings; use File::Basename; use Hydra::Helper::CatalystUtils; use MIME::Base64; @@ -7,7 +9,6 @@ use Nix::Manifest; use Nix::Store; use Nix::Utils; use base qw/Catalyst::View/; -use strict; sub process { my ($self, $c) = @_; diff --git a/src/lib/Hydra/View/NixClosure.pm b/src/lib/Hydra/View/NixClosure.pm index d906dce3..c157af6b 100644 --- a/src/lib/Hydra/View/NixClosure.pm +++ b/src/lib/Hydra/View/NixClosure.pm @@ -1,6 +1,7 @@ package Hydra::View::NixClosure; use strict; +use warnings; use base qw/Catalyst::View/; use IO::Pipe; diff --git a/src/lib/Hydra/View/NixExprs.pm b/src/lib/Hydra/View/NixExprs.pm index 194c51ec..eb68c8bc 100644 --- a/src/lib/Hydra/View/NixExprs.pm +++ b/src/lib/Hydra/View/NixExprs.pm @@ -1,6 +1,7 @@ package Hydra::View::NixExprs; use strict; +use warnings; use base qw/Catalyst::View/; use Hydra::Helper::Nix; use Hydra::Helper::Escape; diff --git a/src/lib/Hydra/View/NixLog.pm b/src/lib/Hydra/View/NixLog.pm index fb9e0e1f..c2146bd4 100644 --- a/src/lib/Hydra/View/NixLog.pm +++ b/src/lib/Hydra/View/NixLog.pm @@ -1,6 +1,7 @@ package Hydra::View::NixLog; use strict; +use warnings; use base qw/Catalyst::View/; use Hydra::Helper::CatalystUtils; diff --git a/src/lib/Hydra/View/NixManifest.pm b/src/lib/Hydra/View/NixManifest.pm index c64f8dab..5b02ac06 100644 --- a/src/lib/Hydra/View/NixManifest.pm +++ b/src/lib/Hydra/View/NixManifest.pm @@ -1,6 +1,7 @@ package Hydra::View::NixManifest; use strict; +use warnings; use base qw/Catalyst::View/; use Hydra::Helper::Nix; use Nix::Store; diff --git a/src/lib/Hydra/View/NixNAR.pm b/src/lib/Hydra/View/NixNAR.pm index e1798275..cae43275 100644 --- a/src/lib/Hydra/View/NixNAR.pm +++ b/src/lib/Hydra/View/NixNAR.pm @@ -1,6 +1,7 @@ package Hydra::View::NixNAR; use strict; +use warnings; use base qw/Catalyst::View/; use Hydra::Helper::CatalystUtils; diff --git a/src/lib/Hydra/View/TT.pm b/src/lib/Hydra/View/TT.pm index f8b3fb64..c6176231 100644 --- a/src/lib/Hydra/View/TT.pm +++ b/src/lib/Hydra/View/TT.pm @@ -1,6 +1,7 @@ package Hydra::View::TT; use strict; +use warnings; use base 'Catalyst::View::TT'; use Hydra::Helper::Nix; use Time::Seconds; diff --git a/src/script/hydra-backfill-ids b/src/script/hydra-backfill-ids index d9fc362a..bb750829 100755 --- a/src/script/hydra-backfill-ids +++ b/src/script/hydra-backfill-ids @@ -1,6 +1,7 @@ #! /usr/bin/env perl use strict; +use warnings; use utf8; use Hydra::Model::DB; diff --git a/src/script/hydra-create-user b/src/script/hydra-create-user index 0ed51bd8..d0178dc1 100755 --- a/src/script/hydra-create-user +++ b/src/script/hydra-create-user @@ -1,6 +1,7 @@ #! /usr/bin/env perl use strict; +use warnings; use Hydra::Schema; use Hydra::Helper::Nix; use Hydra::Model::DB; diff --git a/src/script/hydra-dev-server b/src/script/hydra-dev-server index 4f03ee39..ea502d89 100755 --- a/src/script/hydra-dev-server +++ b/src/script/hydra-dev-server @@ -1,5 +1,8 @@ #! /usr/bin/env perl +use strict; +use warnings; + BEGIN { $ENV{CATALYST_SCRIPT_GEN} = 40; } diff --git a/src/script/hydra-eval-jobset b/src/script/hydra-eval-jobset index 77938c85..4a165d86 100755 --- a/src/script/hydra-eval-jobset +++ b/src/script/hydra-eval-jobset @@ -1,12 +1,13 @@ #! /usr/bin/env perl use strict; +use warnings; use utf8; use Config::General; use Data::Dump qw(dump); use Digest::SHA qw(sha256_hex); use Encode; -use File::Slurp; +use File::Slurper qw(read_text); use Hydra::Helper::AddBuilds; use Hydra::Helper::CatalystUtils; use Hydra::Helper::Email; @@ -121,7 +122,8 @@ sub fetchInputBuild { my $versionRE = "(?:[A-Za-z0-9\.\-]+)"; my $relName = ($prevBuild->releasename or $prevBuild->nixname); - my $version = $2 if $relName =~ /^($pkgNameRE)-($versionRE)$/; + my $version; + $version = $2 if $relName =~ /^($pkgNameRE)-($versionRE)$/; my $mainOutput = getMainOutput($prevBuild); @@ -166,7 +168,8 @@ sub fetchInputSystemBuild { my $versionRE = "(?:[A-Za-z0-9\.\-]+)"; my $relName = ($prevBuild->releasename or $prevBuild->nixname); - my $version = $2 if $relName =~ /^($pkgNameRE)-($versionRE)$/; + my $version; + $version = $2 if $relName =~ /^($pkgNameRE)-($versionRE)$/; my $input = { storePath => getMainOutput($prevBuild)->path @@ -568,7 +571,7 @@ sub checkJobsetWrapped { die "multiple alternatives for the input containing the declarative project specification are not supported\n" if scalar @declInputs != 1; my $declFile = $declInput->{storePath} . "/" . $project->declfile; - my $declText = read_file($declFile) + my $declText = read_text($declFile) or die "Couldn't read declarative specification file $declFile: $!\n"; my $declSpec; eval { diff --git a/src/script/hydra-init b/src/script/hydra-init index ac9d4afe..f0914439 100755 --- a/src/script/hydra-init +++ b/src/script/hydra-init @@ -1,10 +1,11 @@ #! /usr/bin/env perl use strict; +use warnings; use Hydra::Schema; use Hydra::Helper::Nix; use Hydra::Model::DB; -use File::Slurp; +use File::Slurper qw(read_text); use SQL::SplitStatement; use List::Util qw(max); @@ -24,7 +25,7 @@ my $maxSchemaVersion = max (map { /.*\/upgrade-(\d.*)\.sql/; $1 } (glob "$home/s my @tables = $dbh->tables; if (! grep { /SchemaVersion/i } @tables) { print STDERR "initialising the Hydra database schema...\n"; - my $schema = read_file( + my $schema = read_text( $dbh->{Driver}->{Name} eq 'Pg' ? "$home/sql/hydra.sql" : die "unsupported database type $dbh->{Driver}->{Name}\n"); my @statements = $sql_splitter->split($schema); @@ -57,7 +58,7 @@ QUOTE for (my $n = $schemaVersion; $n < $maxSchemaVersion; $n++) { my $m = $n + 1; print STDERR "upgrading Hydra schema from version $n to $m\n"; - my $schema = read_file("$home/sql/upgrade-$m.sql"); + my $schema = read_text("$home/sql/upgrade-$m.sql"); my @statements = $sql_splitter->split($schema); eval { $dbh->begin_work; diff --git a/src/script/hydra-notify b/src/script/hydra-notify index ec95a144..c682d03d 100755 --- a/src/script/hydra-notify +++ b/src/script/hydra-notify @@ -1,6 +1,7 @@ #! /usr/bin/env perl use strict; +use warnings; use utf8; use Getopt::Long; use HTTP::Server::PSGI; diff --git a/src/script/hydra-s3-backup-collect-garbage b/src/script/hydra-s3-backup-collect-garbage index ae6423f7..23b50c2f 100755 --- a/src/script/hydra-s3-backup-collect-garbage +++ b/src/script/hydra-s3-backup-collect-garbage @@ -1,6 +1,7 @@ #! /usr/bin/env perl use strict; +use warnings; use File::Basename; use Fcntl; use IO::File; @@ -25,9 +26,9 @@ my $client = Net::Amazon::S3::Client->new( s3 => Net::Amazon::S3->new( retry => my $db = Hydra::Model::DB->new(); my $gcRootsDir = getGCRootsDir; -opendir DIR, $gcRootsDir or die; -my @roots = readdir DIR; -closedir DIR; +opendir my $dir, $gcRootsDir or die; +my @roots = readdir $dir; +closedir $dir; my @actual_roots = (); foreach my $link (@roots) { diff --git a/src/script/hydra-send-stats b/src/script/hydra-send-stats index d07d9406..85807631 100755 --- a/src/script/hydra-send-stats +++ b/src/script/hydra-send-stats @@ -1,10 +1,11 @@ #! /usr/bin/env perl use strict; +use warnings; use utf8; use Hydra::Helper::Nix; use Net::Statsd; -use File::Slurp; +use File::Slurper qw(read_text); use JSON; use Getopt::Long qw(:config gnu_getopt); @@ -92,7 +93,7 @@ while (1) { 1; } or do { warn "$@"; }; - my $meminfo = read_file("/proc/meminfo", err_mode => 'quiet') // ""; + my $meminfo = read_text("/proc/meminfo") // ""; $meminfo =~ m/Dirty:\s*(\d+) kB/; if (defined $1) { my $dirty = $1 / (1024.0 * 1024.0); diff --git a/src/script/hydra-server b/src/script/hydra-server index b8922e93..7f0deb2e 100755 --- a/src/script/hydra-server +++ b/src/script/hydra-server @@ -1,5 +1,8 @@ #! /usr/bin/env perl +use strict; +use warnings; + BEGIN { $ENV{CATALYST_SCRIPT_GEN} = 40; } diff --git a/src/script/hydra-update-gc-roots b/src/script/hydra-update-gc-roots index de544e53..b8ddf971 100755 --- a/src/script/hydra-update-gc-roots +++ b/src/script/hydra-update-gc-roots @@ -1,6 +1,7 @@ #! /usr/bin/env perl use strict; +use warnings; use File::Path; use File::stat; use File::Basename; @@ -62,9 +63,9 @@ sub keepBuild { # Read the current GC roots. print STDERR "*** reading current roots...\n"; my $gcRootsDir = getGCRootsDir; -opendir DIR, $gcRootsDir or die; -my @roots = readdir DIR; -closedir DIR; +opendir my $dir, $gcRootsDir or die; +my @roots = readdir $dir; +closedir $dir; # For scheduled builds, we register the derivation as a GC root. diff --git a/src/sql/update-dbix.pl b/src/sql/update-dbix.pl index 97061f21..8490ca3c 100644 --- a/src/sql/update-dbix.pl +++ b/src/sql/update-dbix.pl @@ -1,4 +1,6 @@ use Cwd; +use strict; +use warnings; die "$0: dbi connection string required \n" if scalar @ARGV != 1; diff --git a/t/Config/hydra-notify.t b/t/Config/hydra-notify.t index 7fc8aa63..fb050324 100644 --- a/t/Config/hydra-notify.t +++ b/t/Config/hydra-notify.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(hydra_config => q| diff --git a/t/Config/include.t b/t/Config/include.t index 3e57b3d4..e161902e 100644 --- a/t/Config/include.t +++ b/t/Config/include.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init( diff --git a/t/Config/statsd.t b/t/Config/statsd.t index be042127..c50e8d99 100644 --- a/t/Config/statsd.t +++ b/t/Config/statsd.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(hydra_config => q| diff --git a/t/Controller/Build/evals.t b/t/Controller/Build/evals.t index b12e00c6..6cbdeac9 100644 --- a/t/Controller/Build/evals.t +++ b/t/Controller/Build/evals.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use Data::Dumper; my %ctx = test_init(); diff --git a/t/Controller/Jobset/channel.t b/t/Controller/Jobset/channel.t index cb0a5952..322abc92 100644 --- a/t/Controller/Jobset/channel.t +++ b/t/Controller/Jobset/channel.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; use IO::Uncompress::Bunzip2 qw(bunzip2); use Archive::Tar; diff --git a/t/Controller/Jobset/evals.t b/t/Controller/Jobset/evals.t index ba53124a..221efb65 100644 --- a/t/Controller/Jobset/evals.t +++ b/t/Controller/Jobset/evals.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use Data::Dumper; my %ctx = test_init(); diff --git a/t/Controller/Jobset/http.t b/t/Controller/Jobset/http.t index be2950f0..6b5788c5 100644 --- a/t/Controller/Jobset/http.t +++ b/t/Controller/Jobset/http.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; use JSON qw(decode_json encode_json); diff --git a/t/Controller/Jobset/type-constraints.t b/t/Controller/Jobset/type-constraints.t index 361c7c56..88a8e2ee 100644 --- a/t/Controller/Jobset/type-constraints.t +++ b/t/Controller/Jobset/type-constraints.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/Controller/Root/evals.t b/t/Controller/Root/evals.t index 895ef424..2119725b 100644 --- a/t/Controller/Root/evals.t +++ b/t/Controller/Root/evals.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use Data::Dumper; my %ctx = test_init(); diff --git a/t/Controller/metrics.t b/t/Controller/metrics.t index 8915104d..325efad9 100644 --- a/t/Controller/metrics.t +++ b/t/Controller/metrics.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; use JSON qw(decode_json encode_json); diff --git a/t/Controller/projects.t b/t/Controller/projects.t index fb7df6ad..068f566b 100644 --- a/t/Controller/projects.t +++ b/t/Controller/projects.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; use JSON qw(decode_json encode_json); diff --git a/t/Event.t b/t/Event.t index a15b95ea..908c2440 100644 --- a/t/Event.t +++ b/t/Event.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Hydra::Event; use Test2::V0; diff --git a/t/Event/BuildFinished.t b/t/Event/BuildFinished.t index 8650f95c..298b4162 100644 --- a/t/Event/BuildFinished.t +++ b/t/Event/BuildFinished.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/Event/BuildStarted.t b/t/Event/BuildStarted.t index 04a7df54..08433d8d 100644 --- a/t/Event/BuildStarted.t +++ b/t/Event/BuildStarted.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/Event/StepFinished.t b/t/Event/StepFinished.t index a4bc3fb9..ae2d8081 100644 --- a/t/Event/StepFinished.t +++ b/t/Event/StepFinished.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/Helper/escape.t b/t/Helper/escape.t index 22dd4d47..424c9198 100644 --- a/t/Helper/escape.t +++ b/t/Helper/escape.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use Data::Dumper; use Test2::V0; diff --git a/t/PostgresListener.t b/t/PostgresListener.t index ac9ec502..0249d498 100644 --- a/t/PostgresListener.t +++ b/t/PostgresListener.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/Schema/Users.t b/t/Schema/Users.t index fd1a66e1..b9d52419 100644 --- a/t/Schema/Users.t +++ b/t/Schema/Users.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/api-test.t b/t/api-test.t index ac1e4964..3fee0264 100644 --- a/t/api-test.t +++ b/t/api-test.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use JSON; use File::Copy; diff --git a/t/build-products.t b/t/build-products.t index 6987b9df..3bc62d2e 100644 --- a/t/build-products.t +++ b/t/build-products.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/evaluate-basic.t b/t/evaluate-basic.t index c12709b2..f4c6fde8 100644 --- a/t/evaluate-basic.t +++ b/t/evaluate-basic.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/evaluate-dependent-jobsets.t b/t/evaluate-dependent-jobsets.t index c5a4085d..19c62891 100644 --- a/t/evaluate-dependent-jobsets.t +++ b/t/evaluate-dependent-jobsets.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/input-types/bzr-checkout.t b/t/input-types/bzr-checkout.t index ee1f90a0..297c9bd6 100644 --- a/t/input-types/bzr-checkout.t +++ b/t/input-types/bzr-checkout.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/input-types/bzr.t b/t/input-types/bzr.t index 0cc0a23d..36448103 100644 --- a/t/input-types/bzr.t +++ b/t/input-types/bzr.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/input-types/darcs.t b/t/input-types/darcs.t index aa95a8e6..7f8bd044 100644 --- a/t/input-types/darcs.t +++ b/t/input-types/darcs.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/input-types/deepgit.t b/t/input-types/deepgit.t index 4d418148..487d0a83 100644 --- a/t/input-types/deepgit.t +++ b/t/input-types/deepgit.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/input-types/git-rev.t b/t/input-types/git-rev.t index 866370d2..a1749f3b 100644 --- a/t/input-types/git-rev.t +++ b/t/input-types/git-rev.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/input-types/git.t b/t/input-types/git.t index 0804cc1a..ed2ab43b 100644 --- a/t/input-types/git.t +++ b/t/input-types/git.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/input-types/hg.t b/t/input-types/hg.t index 28552288..83d9df87 100644 --- a/t/input-types/hg.t +++ b/t/input-types/hg.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/input-types/svn-checkout.t b/t/input-types/svn-checkout.t index 48f07f09..af4e65ce 100644 --- a/t/input-types/svn-checkout.t +++ b/t/input-types/svn-checkout.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/input-types/svn.t b/t/input-types/svn.t index c2eb8cec..44f8d44e 100644 --- a/t/input-types/svn.t +++ b/t/input-types/svn.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Setup; use TestScmInput; diff --git a/t/lib/Setup.pm b/t/lib/Setup.pm index 800c90eb..b80eea14 100644 --- a/t/lib/Setup.pm +++ b/t/lib/Setup.pm @@ -1,6 +1,7 @@ package Setup; use strict; +use warnings; use Exporter; use Test::PostgreSQL; use File::Temp; @@ -49,7 +50,7 @@ sub test_init { $ENV{'NIX_CONF_DIR'} = "$dir/nix/etc/nix"; make_path($ENV{'NIX_CONF_DIR'}); my $nixconf = "$ENV{'NIX_CONF_DIR'}/nix.conf"; - my $nix_config = "sandbox = false\n" . $opts{'nix_config'}; + my $nix_config = "sandbox = false\n" . ($opts{'nix_config'} || ""); write_file($nixconf, $nix_config); $ENV{'HYDRA_CONFIG'} = "$dir/hydra.conf"; diff --git a/t/queue-runner/default-machine-file.t b/t/queue-runner/default-machine-file.t index d57f1816..e6348226 100644 --- a/t/queue-runner/default-machine-file.t +++ b/t/queue-runner/default-machine-file.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; my %ctx = test_init( diff --git a/t/s3-backup-test.pl b/t/s3-backup-test.pl index 372a9697..9332ab15 100644 --- a/t/s3-backup-test.pl +++ b/t/s3-backup-test.pl @@ -1,4 +1,5 @@ use strict; +use warnings; use File::Basename; use Hydra::Model::DB; use Hydra::Helper::Nix; @@ -38,12 +39,12 @@ ok(-e "/tmp/s3/hydra/$successful_hash.nar", "The nar of a build that's a root is ok(-e "/tmp/s3/hydra/$successful_hash.narinfo", "The narinfo of a build that's a root is not removed by gc"); my $gcRootsDir = getGCRootsDir; -opendir DIR, $gcRootsDir or die; -while(readdir DIR) { - next if $_ eq "." or $_ eq ".."; - unlink "$gcRootsDir/$_"; +opendir my $dir, $gcRootsDir or die; +while(my $file = readdir $dir) { + next if $file eq "." or $file eq ".."; + unlink "$gcRootsDir/$file"; } -closedir DIR; +closedir $dir; system("hydra-s3-backup-collect-garbage"); ok(not -e "/tmp/s3/hydra/$successful_hash.nar", "The nar of a build that's not a root is removed by gc"); ok(not -e "/tmp/s3/hydra/$successful_hash.narinfo", "The narinfo of a build that's not a root is removed by gc"); diff --git a/t/scripts/hydra-create-user.t b/t/scripts/hydra-create-user.t index 3706d911..abd0b1b8 100644 --- a/t/scripts/hydra-create-user.t +++ b/t/scripts/hydra-create-user.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/scripts/hydra-init.t b/t/scripts/hydra-init.t index 517a14d7..3fbcb629 100644 --- a/t/scripts/hydra-init.t +++ b/t/scripts/hydra-init.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/scripts/hydra-send-stats.t b/t/scripts/hydra-send-stats.t index dde88cfe..1c0e1eeb 100644 --- a/t/scripts/hydra-send-stats.t +++ b/t/scripts/hydra-send-stats.t @@ -1,5 +1,6 @@ use feature 'unicode_strings'; use strict; +use warnings; use Setup; my %ctx = test_init(); diff --git a/t/setup-notifications-jobset.pl b/t/setup-notifications-jobset.pl index 8eef78e6..70998845 100644 --- a/t/setup-notifications-jobset.pl +++ b/t/setup-notifications-jobset.pl @@ -1,3 +1,5 @@ +use strict; +use warnings; use LWP::UserAgent; use JSON;