Commit 8aeaba6 1 parent 8c70c83 commit 8aeaba6 Copy full SHA for 8aeaba6
File tree 1 file changed +31
-1
lines changed
1 file changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ sub new {
26
26
27
27
$self -> _handle_exclude_file if $self -> {exclude_file };
28
28
29
- $self -> {db } //= CPAN::Audit::DB -> db ;
29
+ $self -> {db } //= $self -> _get_db( %args ) ;
30
30
31
31
$self -> {filter } = CPAN::Audit::Filter-> new( exclude => $args {exclude } );
32
32
$self -> {query } = CPAN::Audit::Query-> new( db => $self -> {db } );
@@ -35,6 +35,36 @@ sub new {
35
35
return $self ;
36
36
}
37
37
38
+ sub _get_db {
39
+ my ( $self , %params ) = @_ ;
40
+
41
+ if ( $params {' json_db' } ) {
42
+ my $data = do {
43
+ local $/ ;
44
+ open my ($fh ), ' <:raw' , $params {' json_db' }
45
+ or die " could not read file <$params {json_db}>\n " ;
46
+ <$fh >;
47
+ };
48
+ state $rc = require JSON;
49
+
50
+ my $decoded = eval { JSON::decode_json($data ) };
51
+ die " could not decode JSON from <$params {json_db}>: @_ \n " unless defined $decoded ;
52
+ return $decoded ;
53
+ }
54
+
55
+ my $rc = eval { require CPANSA::DB };
56
+ if ( $rc ) {
57
+ return CPANSA::DB-> db;
58
+ }
59
+
60
+ $rc = eval { require CPAN::Audit::DB };
61
+ if ( $rc ) {
62
+ return CPAN::Audit::DB-> db;
63
+ }
64
+
65
+ die " could not find a CPANSA database in CPANSA::DB or CPAN::Audit::DB\n " ;
66
+ }
67
+
38
68
sub _handle_exclude_file {
39
69
my ( $self ) = @_ ;
40
70
You can’t perform that action at this time.
0 commit comments