This file is indexed.

/usr/share/perl5/Perlanet/Trait/YAMLConfig.pm is in libperlanet-perl 0.56-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package Perlanet::Trait::YAMLConfig;

use strict;
use warnings;

use Moose::Role;
use namespace::autoclean;

=head1 NAME

Perlanet::Trait::YAMLConfig - configure Perlanet through a YAML configuration
file

=head1 SYNOPSIS

   package MyPerlanet;
   extends 'Perlanet';
   with 'Perlanet::Traits::YAMLConfig';

   my $perlanet = MyPerlanet->new_with_config(
     configfile => 'whatever.yml'
   );

   $perlanet->run;

=head1 DESCRIPTION

Allows you to move the configuration of Perlanet to an external YAML
configuration file.

=head2 Example Configuration File

  title: planet test
  description: A Test Planet
  url: http://planet.example.com/
  author:
    name: Dave Cross
    email: dave@dave.org.uk
  entries: 20
  opml: opml.xml
  page:
    file: index.html
    template: index.tt
  feed:
    file: atom.xml
    format: Atom
  cache_dir: /tmp/feeds
  feeds:
    - url: http://blog.dave.org.uk/atom.xml
      title: Dave's Blog
      web: http://blog.dave.org.uk/
    - url: http://use.perl.org/~davorg/journal/rss
      title: Dave's use.perl Journal
      web: http://use.perl.org/~davorg/journal/
    - url: http://www.oreillynet.com/pub/feed/31?au=2607
      title: Dave on O'Reillynet
      web: http://www.oreillynet.com/pub/au/2607

=head1 METHODS

=head2 THIRTY_DAYS

The default length of caching, if caching options are present in the
configuration

=head2 get_config_from_file

Extracts the configuration from a YAML file

=cut

with 'MooseX::ConfigFromFile';

use Carp qw( carp croak );
use YAML qw( LoadFile );

use constant THIRTY_DAYS => 30 * 24 * 60 * 60;

sub get_config_from_file {
  my ($self, $file) = @_;

  open my $cfg_file, '<:utf8', $file
    or croak "Cannot open file $file: $!";

  my $cfg = LoadFile($cfg_file);

  $cfg->{feeds} = [ map {
    Perlanet::Feed->new($_)
  } @{ $cfg->{feeds} } ];

  $cfg->{max_entries} = $cfg->{entries}
    if $cfg->{entries};

  if ($cfg->{cache_dir}) {
    eval { require CHI; };

    if ($@) {
      carp "You need to install CHI to enable caching.\n";
      carp "Caching disabled for this run.\n";
      delete $cfg->{cache_dir};
    }
  }

  $cfg->{cache_dir}
    and $cfg->{cache} = CHI->new(
      driver     => 'File',
      root_dir   => delete $cfg->{cache_dir},
      expires_in => THIRTY_DAYS,
    );

  return $cfg;
}

=head1 AUTHOR

Oliver Charles, <oliver.g.charles@googlemail.com>

=head1 COPYRIGHT AND LICENSE

Copyright (c) 2010 by Magnum Solutions Ltd.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.0 or,
at your option, any later version of Perl 5 you may have available.

=cut

1;