Changeset 136
- Timestamp:
- 02/10/07 17:55:24 (2 years ago)
- Files:
-
- trunk/lib/Kwiki/Boot (added)
- trunk/lib/Kwiki/Boot.pm (added)
- trunk/lib/Kwiki/Boot/V010.pm (added)
- trunk/src/core/Kwiki/kwiki (modified) (3 diffs)
- trunk/src/core/Kwiki/lib/Kwiki.pm (modified) (2 diffs)
- trunk/src/core/Kwiki/lib/Kwiki/Boot (added)
- trunk/src/core/Kwiki/lib/Kwiki/Boot.pm (added)
- trunk/src/core/Kwiki/lib/Kwiki/Boot/V010.pm (added)
- trunk/src/core/Kwiki/lib/Kwiki/Config.pm (modified) (2 diffs)
- trunk/src/core/Kwiki/lib/Kwiki/Files.pm (modified) (1 diff)
- trunk/src/core/Spoon/lib/Spoon.pm (modified) (1 diff)
- trunk/src/core/Spoon/lib/Spoon/Base.pm (modified) (1 diff)
- trunk/src/core/Spoon/lib/Spoon/Hub.pm (modified) (1 diff)
- trunk/src/core/modules.mk (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/core/Kwiki/kwiki
r45 r136 9 9 10 10 sub find_base { 11 return $ENV{KWIKI_BASE} 12 if defined $ENV{KWIKI_BASE}; 11 return if defined $ENV{KWIKI_BASE}; 13 12 14 13 my $base = $FindBin::Bin; … … 25 24 chdir $home; 26 25 $base = abs_path("$base/../../.."); 27 return $base if -d "$base/lib/Kwiki" and -d "$base/src/core/Kwiki";28 26 29 if ($ENV{HOME}) { 30 $base = abs_path("$ENV{HOME}/.kwiki"); 31 return $base 32 if (-d $base and -w $base); 33 } 34 35 die <<'...'; 36 37 *ERROR*: Can't locate Kwiki base repository. 38 39 Try setting the KWIKI_BASE environment variable to a writable directory 40 where Kwiki can store site information. Alternately you can create a 41 ~/.kwiki/ directory for this purpose. 42 43 If you install Kwiki from SVN (http://svn.2.kwiki.org/kwiki/trunk/) or 44 from a Kwiki download tarball (instead of CPAN), then Kwiki will use 45 that directory as the base. 46 47 NOTE: Installing Kwiki from SVN is recommended. It makes installing and 48 updating Kwiki trivial. 49 50 ... 27 die "*ERROR*: Can't locate Kwiki base repository." 28 unless -d "$base/lib/Kwiki" and -d "$base/src/core/Kwiki"; 29 $ENV{KWIKI_BASE} = $base; 51 30 } 52 31 … … 61 40 } 62 41 63 my $base = find_base(); 64 if (-e "$base/lib") { 65 eval "use lib '$base/lib'; 1" 66 or die $@; 67 } 68 $ENV{KWIKI_BASE} = $base; 42 find_base(); 43 eval "use lib '$ENV{KWIKI_BASE}/lib'; 1" or die $@; 69 44 } 70 45 71 use Kwiki; 72 my @configs = qw(config*.yaml -plugins plugins); 73 Kwiki->new->load_hub(@configs)->command->process(@ARGV)->hub->remove_hooks; 46 use Kwiki::Boot; 47 Kwiki::Boot->class->new->kwiki->hub->command->process(@ARGV)->hub->remove_hooks; 74 48 75 49 __END__ trunk/src/core/Kwiki/lib/Kwiki.pm
r66 r136 6 6 7 7 sub process { 8 my $hub = $self-> load_hub(@_);8 my $hub = $self->hub; 9 9 $hub->registry->load; 10 10 $hub->add_hooks; … … 20 20 : print $html; 21 21 } 22 # close STDOUT unless $self->using_debug;23 22 $hub->post_process; 24 23 $self->destroy_hub; trunk/src/core/Kwiki/lib/Kwiki/Config.pm
r100 r136 1 2 1 package Kwiki::Config; 3 2 use Spoon::Config -Base; … … 6 5 const class_id => 'config'; 7 6 const class_title => 'Kwiki Configuration'; 8 const config_file => 'config.yaml';9 7 field script_name => ''; 10 const default_path => [ 'config' ];11 8 field path => []; 12 field plugins_file => '';13 14 sub init {15 $self->add_path(@{$self->default_path});16 $self->add_file($self->config_file);17 }18 19 sub paired_arguments { qw(-plugins) }20 sub new {21 my ($args, @configs) = $self->parse_arguments(@_);22 $self = $self->SUPER::new(@configs);23 if (my $plugins_file = $args->{-plugins}) {24 $self->add_plugins_file($plugins_file);25 $self->plugins_file($plugins_file);26 }27 return $self;28 }29 9 30 10 sub add_plugins_file { trunk/src/core/Kwiki/lib/Kwiki/Files.pm
r87 r136 11 11 #!/usr/bin/perl 12 12 use lib 'lib'; 13 use Kwiki ;14 Kwiki ->new->debug->process('config*.*', -plugins => 'plugins');13 use Kwiki::Boot; 14 Kwiki::Boot->class->new->kwiki->debug->process; 15 15 __README__ 16 16 A Kwiki Welcome trunk/src/core/Spoon/lib/Spoon.pm
r87 r136 4 4 5 5 const class_id => 'main'; 6 7 sub load_hub {8 $self->destroy_hub;9 my $hub = $self->hub(@_);10 $hub->main($self);11 $self->init;12 return $hub;13 }trunk/src/core/Spoon/lib/Spoon/Base.pm
r87 r136 15 15 16 16 sub hub { 17 return $Spoon::Base::HUB 18 if defined($Spoon::Base::HUB) and not @_; 19 Carp::confess "Too late to create a new hub. One already exists" 20 if defined $Spoon::Base::HUB; 21 22 my ($args, @config_files); 23 { 24 no warnings; 25 local *paired_arguments = sub { qw(-config_class) }; 26 ($args, @config_files) = $self->parse_arguments(@_); 27 } 28 my $config_class = $args->{-config_class} || 29 $self->can('config_class') 30 ? $self->config_class 31 : 'Spoon::Config'; 32 eval "require $config_class"; die $@ if $@; 33 my $config = $config_class->new(@config_files); 34 my $hub_class = $config->hub_class; 35 eval "require $hub_class"; 36 my $hub = $hub_class->new( 37 config => $config, 38 config_files => \@config_files, 39 ); 17 return $Spoon::Base::HUB; 40 18 } 41 19 trunk/src/core/Spoon/lib/Spoon/Hub.pm
r117 r136 8 8 field config_files => []; 9 9 field all_hooks => []; 10 field 'config'; 10 11 11 12 sub new { 12 13 $self = $self->SUPER::new(@_); 13 14 $self->init; 15 die "Hub already created" 16 if defined $Spoon::Base::HUB; 14 17 $Spoon::Base::HUB = $self; 15 18 } trunk/src/core/modules.mk
r71 r136 4 4 Kwiki \ 5 5 Kwiki/Archive \ 6 Kwiki/Boot \ 6 7 Kwiki/Template \ 7 8 Kwiki/Theme \ … … 34 35 Kwiki/Archive.pm \ 35 36 Kwiki/Base.pm \ 37 Kwiki/Boot.pm \ 36 38 Kwiki/BrowserDetect.pm \ 37 39 Kwiki/CGI.pm \ … … 125 127 IO/All/Temp.pm \ 126 128 Kwiki/Archive/Simple.pm \ 129 Kwiki/Boot/V010.pm \ 127 130 Kwiki/Template/TT2.pm \ 128 131 Kwiki/Theme/Basic.pm \
