Changeset 8512 for lang/perl/Punc
- Timestamp:
- 03/30/08 20:45:13 (8 months ago)
- Location:
- lang/perl/Punc/trunk/lib/Punc
- Files:
-
- 4 modified
-
Client/Response.pm (modified) (1 diff)
-
Server/Module.pm (modified) (1 diff)
-
Server/Module/Service.pm (modified) (1 diff)
-
Server/Module/Service/RedHat.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Punc/trunk/lib/Punc/Client/Response.pm
r8509 r8512 1 1 package Punc::Client::Response; 2 3 use strict; 4 use warnings; 2 5 3 6 sub new { -
lang/perl/Punc/trunk/lib/Punc/Server/Module.pm
r8509 r8512 4 4 use warnings; 5 5 use Pod::Text; 6 use Module::Pluggable; 6 7 7 8 sub new { 8 9 my $class = shift; 10 $class->search_path( new => $class ); 11 12 my @modules = $class->plugins; 13 for my $module ( @modules ) { 14 $module->require or die $@; 15 my $default_for = $module->default_for; 16 next unless $default_for; 17 18 my ( $fact ) = keys %$default_for; 19 if ( grep { `facter $fact` =~ /$_/i } @{ $default_for->{$fact} } ) { 20 $class = $module; 21 } 22 } 23 9 24 bless {}, $class; 10 25 } 26 27 sub default_for { } 11 28 12 29 sub exec { -
lang/perl/Punc/trunk/lib/Punc/Server/Module/Service.pm
r8509 r8512 5 5 use base qw( Punc::Server::Module ); 6 6 use UNIVERSAL::require; 7 8 sub new {9 my $class = shift;10 my $provider = get_provider();11 $class = "${class}::${provider}";12 $class->require or die $@;13 bless {}, $class;14 }15 16 my %provider_map = (17 'centos|fedora' => 'RedHat',18 );19 20 sub get_provider {21 my $os = `facter operatingsystem`;22 23 for ( keys %provider_map ) {24 return $provider_map{$_} if $os =~ /$_/i;25 }26 27 return 'RedHat' # default;28 }29 7 30 8 sub status { -
lang/perl/Punc/trunk/lib/Punc/Server/Module/Service/RedHat.pm
r8509 r8512 1 1 package Punc::Server::Module::Service::RedHat; 2 2 3 use strict; 4 use warnings; 3 5 use base qw( Punc::Server::Module::Service ); 6 7 sub default_for { 8 return { 'operatingsystem' => [ 'redhat', 'fedora', 'centos' ] } 9 } 4 10 5 11 sub status {
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)