mirror of
https://github.com/ovh/the-bastion.git
synced 2025-02-26 16:43:03 +08:00
Merge pull request #111 from ovh/perluseall
chore: perl-use-all: dynamically find required modules
This commit is contained in:
commit
e8d60810f1
6 changed files with 44 additions and 62 deletions
|
@ -3,7 +3,7 @@
|
|||
use strict;
|
||||
use warnings;
|
||||
|
||||
use GnuPG;
|
||||
use GnuPG; # pragma optional module
|
||||
use File::Temp;
|
||||
use File::Basename;
|
||||
use File::Find;
|
||||
|
|
|
@ -35,9 +35,8 @@ do
|
|||
grep -q '^use common::sense;' "$i" || echo "(missing common::sense in $i)"
|
||||
fi
|
||||
done
|
||||
if [ -x "$basedir/bin/dev/perl-use-all.pl" ] ; then
|
||||
action_detail "Trying to \`use' all required perl modules"
|
||||
"$basedir/bin/dev/perl-use-all.pl" || (( fails++ ))
|
||||
if [ -x "$basedir/bin/dev/perl-use-all.sh" ] ; then
|
||||
"$basedir/bin/dev/perl-use-all.sh" || (( fails++ ))
|
||||
fi
|
||||
|
||||
if [ "$fails" -ne 0 ] ; then
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
#! /usr/bin/env perl
|
||||
# vim: set filetype=perl ts=4 sw=4 sts=4 et:
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Carp;
|
||||
use CGI;
|
||||
use common::sense;
|
||||
use Config;
|
||||
use Cwd;
|
||||
use Data::Dumper;
|
||||
use DBD::SQLite;
|
||||
use Digest::MD5;
|
||||
use Digest::SHA;
|
||||
use Exporter;
|
||||
use Fcntl;
|
||||
use File::Basename;
|
||||
use File::Copy;
|
||||
use File::Find;
|
||||
use File::Path;
|
||||
use File::Temp;
|
||||
use Getopt::Long;
|
||||
use HTTP::Headers;
|
||||
use HTTP::Message;
|
||||
use HTTP::Request;
|
||||
use IO::Compress::Gzip;
|
||||
use IO::Handle;
|
||||
use IO::Pipe;
|
||||
use IO::Select;
|
||||
use IO::Socket::SSL;
|
||||
use IPC::Open2;
|
||||
use IPC::Open3;
|
||||
use JSON;
|
||||
use List::Util;
|
||||
use LWP::UserAgent;
|
||||
use MIME::Base64;
|
||||
use Net::IP;
|
||||
use Net::Netmask;
|
||||
use Net::Server::PreFork;
|
||||
use Net::Server::PreForkSimple;
|
||||
use POSIX;
|
||||
use Scalar::Util;
|
||||
use Socket;
|
||||
use Storable;
|
||||
use Symbol;
|
||||
use Sys::Hostname;
|
||||
use Sys::Syslog;
|
||||
use Term::ANSIColor;
|
||||
use Term::ReadKey;
|
||||
use Term::ReadLine;
|
||||
use Time::HiRes;
|
||||
use Time::Piece;
|
||||
use URI;
|
||||
|
||||
print "OK: all required Perl modules are present\n";
|
39
bin/dev/perl-use-all.sh
Executable file
39
bin/dev/perl-use-all.sh
Executable file
|
@ -0,0 +1,39 @@
|
|||
#! /usr/bin/env bash
|
||||
# vim: set filetype=sh ts=4 sw=4 sts=4 et:
|
||||
|
||||
basedir=$(readlink -f "$(dirname "$0")"/../..)
|
||||
# shellcheck source=lib/shell/functions.inc
|
||||
. "$basedir"/lib/shell/functions.inc
|
||||
|
||||
action_doing "Checking list of needed Perl modules..."
|
||||
|
||||
missing=""
|
||||
|
||||
# shellcheck disable=SC2013
|
||||
for module in $(grep -RhEw '(use|require) ([a-zA-Z][a-zA-Z0-9_:]+)' "$basedir/lib/perl/" "$basedir/bin/" | \
|
||||
grep -v -e '"' -e "'" -e '# pragma optional module' -e OVH:: | \
|
||||
sed -re 's/#.*//' | \
|
||||
grep -Eo '(use|require) ([a-zA-Z][a-zA-Z0-9_:]+)' | \
|
||||
awk '{print $2}' | \
|
||||
sort -u | \
|
||||
grep -Ev '^[a-z0-9_]+$')
|
||||
do
|
||||
if [ "$1" != "corelist" ]; then
|
||||
action_detail "$module"
|
||||
if ! perl -M"$module" -e 1; then
|
||||
action_detail "... failed!"
|
||||
missing="$missing $module"
|
||||
fi
|
||||
else
|
||||
if corelist "$module" | grep -q 'not in CORE'; then
|
||||
action_detail "$module"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$missing" ]; then
|
||||
action_error "Missing modules:$missing"
|
||||
else
|
||||
# shellcheck disable=SC2119
|
||||
action_done
|
||||
fi
|
|
@ -44,7 +44,7 @@ local $0 = '' . __FILE__ . ' ' . join(' ', @command);
|
|||
|
||||
# set signal for when my parent dies (Linux only)
|
||||
eval {
|
||||
require Linux::Prctl;
|
||||
require Linux::Prctl; # pragma optional module
|
||||
|
||||
# 1 is SIGHUP
|
||||
Linux::Prctl::set_pdeathsig(1);
|
||||
|
|
|
@ -1431,7 +1431,7 @@ sub exit_sig {
|
|||
sub help {
|
||||
|
||||
=cut just to debug memory fingerprint
|
||||
use Devel::Size qw[total_size];
|
||||
use Devel::Size qw[total_size]; # pragma optional module
|
||||
my %siz;
|
||||
foreach (keys %::main::main::)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue