/[pub]/suikawiki/script/default/suikawiki-config.ph
Suika

Diff of /suikawiki/script/default/suikawiki-config.ph

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.16 by wakaba, Sat Mar 20 04:25:49 2004 UTC revision 1.17 by wakaba, Sun Apr 25 07:12:56 2004 UTC
# Line 20  This file is part of SuikaWiki. Line 20  This file is part of SuikaWiki.
20  package wiki::driver::http;  package wiki::driver::http;
21  use strict;  use strict;
22    
23      ## These lines should be removed after utf8 support
24      BEGIN {
25        $Message::Util::Formatter::Base::Token = qr/[\w._+\x80-\xFF-]+/;
26        require Message::Util::Formatter::Base;
27      }
28      use Message::Util::Error;
29    
30    use Message::Util::QName::General [q<ExpandedURI>], {
31      'media-type' => q<http://suika.fam.cx/~wakaba/-temp/2004/04/24/mt#>,
32    };
33    
34  push our @Config, sub ($) {  push our @Config, sub ($) {
   eval q{ use Message::Util::Error };  
35    my $WIKI = shift;    my $WIKI = shift;
36    use Cwd qw(abs_path);    use Cwd qw(abs_path);
37        
38    ## -- Filesystem path mapping    ## -- Filesystem path mapping
39    for (    for (
40       [db__cache__dir          => q"./wikidata/lock/"],       [db__cache__dir          => q"./wikidata/cache/"],
41       [db__cache_struct__file  => q"./wikidata/lock/struct.db"],       [db__cache_struct__file  => q"./wikidata/cache/struct.db"],
42       [db__content__dir        => q"./wikidata/page/"],       [db__content__dir        => q"./wikidata/page/"],
43       [db__content__error_log  => q"./wikidata/log/db-content.log"],       [db__content__error_log  => q"./wikidata/log/db-content.log"],
44       [db__bdb__home_dir       => q"./wikidata/lock/"],       [db__bdb__home_dir       => q"./wikidata/lock/"],
# Line 89  push our @Config, sub ($) { Line 99  push our @Config, sub ($) {
99                
100        ## Main content        ## Main content
101        $wiki->{db}->_set_prop_db (content => {-db_open => sub {        $wiki->{db}->_set_prop_db (content => {-db_open => sub {
102          require SuikaWiki::DB::FileSystem::YukiWikiDBNS;          require SuikaWiki::DB::FileSystem::LeafFile;
103          SuikaWiki::DB::FileSystem::YukiWikiDBNS->new          SuikaWiki::DB::FileSystem::LeafFile->new
104            (directory => $wiki->{config}->{path_to}->{db__content__dir},            (base_directory => $wiki->{config}->{path_to}->{db__content__dir},
105             logfile   => $wiki->{config}->{path_to}->{db__content__error_log},             directory_suffix => '.ns',
106             suffix    => '.txt',             file_suffix    => '.txt',
107               root_key => $wiki->{config}->{page}->{Default},
108               -lock => $wiki->{var}->{db}->{lock_prop}->('content_prop'));
109          }, -db_close => sub {
110            my %opt = @_;
111            $opt{prop_info}->{-db}->close;
112            delete $opt{prop_info}->{-db};
113          }});
114          
115          ## Properties
116          $wiki->{db}->_set_prop_db (content_prop => {-db_open => sub {
117            require SuikaWiki::DB::FileSystem::LeafProp;
118            SuikaWiki::DB::FileSystem::LeafProp->new
119              (base_directory => $wiki->{config}->{path_to}->{db__content__dir},
120               directory_suffix => '.ns',
121               file_suffix    => '.prop',
122               root_key => $wiki->{config}->{page}->{Default},
123             -lock => $wiki->{var}->{db}->{lock_prop}->('content'));             -lock => $wiki->{var}->{db}->{lock_prop}->('content'));
124        }, -db_close => sub {        }, -db_close => sub {
125          my %opt = @_;          my %opt = @_;
# Line 137  push our @Config, sub ($) { Line 163  push our @Config, sub ($) {
163            delete $opt{prop_info}->{-db};            delete $opt{prop_info}->{-db};
164          }});          }});
165                
       ## Berkely DB Environment Preparation  
       use BerkeleyDB;  
       my $bdbenv = new BerkeleyDB::Env  
          -Home => $wiki->{config}->{path_to}->{db__bdb__home_dir},  
          -Config => {  
            DB_DATA_DIR => $wiki->{config}->{path_to}->{db__content__dir},  
            DB_LOG_DIR => $wiki->{config}->{path_to}->{db__bdb__log_dir},  
            DB_TMP_DIR => $wiki->{config}->{path_to}->{db__bdb__temp_dir},  
          },  
          -ErrFile => $wiki->{config}->{path_to}->{db__bdb__log_file},  
          -Flags => DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL,  
          -Verbose => $wiki->{config}->{debug}->{db};  
   
       $wiki->{db}->_set_prop_db (content__structured => {-db_open => sub {  
         require SuikaWiki::DB::Hash;  
         new SuikaWiki::DB::Hash constructor => sub {  
           use MLDBM qw(BerkeleyDB::Hash);# Storable);  
           tie my %mldb, 'MLDBM',  
                         -Filename => $wiki->{config}->{path_to}  
                                           ->{db__cache_struct__file},  
                         -Env => $bdbenv,  
                         -Flags => DB_CREATE,  
                         -Mode => 0644;  
           \%mldb;  
        };  
       }});  
         
166        ## Referer Database (See Referer plugin module)        ## Referer Database (See Referer plugin module)
167        $wiki->{db}->_set_prop_db (referer => {-db_open => sub {        $wiki->{db}->_set_prop_db (referer => {-db_open => sub {
168          require SuikaWiki::DB::Hash;          require SuikaWiki::DB::FileSystem::Count;
169          new SuikaWiki::DB::Hash constructor => sub {          SuikaWiki::DB::FileSystem::Count->new
170            tie my %db, 'BerkeleyDB::Hash',            (base_directory => $wiki->{config}->{path_to}->{db__content__dir},
171                          -Filename => 'referer.db',             directory_suffix => '.ns',
172                          -Env => $bdbenv,             file_suffix    => '.ref',
173                          -Flags => DB_CREATE,             root_key => $wiki->{config}->{page}->{Default},
174                          -Mode => 0644;             auto_mkdir => 0,
175            \%db;             -lock => $wiki->{var}->{db}->{lock_prop}->('referer'));
176         };        }, -db_close => sub {
177            my %opt = @_;
178            $opt{prop_info}->{-db}->close;
179            delete $opt{prop_info}->{-db};
180        }});        }});
181    
       ## HTTP Request Logging Database (See RequestLog plugin module)  
       $wiki->{db}->_set_prop_db (log__http_request => {-db_open => sub {  
         require SuikaWiki::DB::Hash;  
         new SuikaWiki::DB::Hash constructor => sub {  
           tie my %db, 'BerkeleyDB::Hash',  
                         -Filename => 'http-request-log.db',  
                         -Env => $bdbenv,  
                         -Flags => DB_CREATE,  
                         -Mode => 0644;  
           \%db;  
        };  
       }});  
         
182        ## Additional WikiDB properties should be defined here        ## Additional WikiDB properties should be defined here
183        # ...            # ...    
184    };    };
# Line 229  push our @Config, sub ($) { Line 218  push our @Config, sub ($) {
218      separator_reg => qr#\s*//\s*#,      separator_reg => qr#\s*//\s*#,
219      self => '.',      self => '.',
220      parent => '..',      parent => '..',
221        root => '//',
222    };    };
223        
224    ## -- Default character codes    ## -- Default character codes
# Line 248  push our @Config, sub ($) { Line 238  push our @Config, sub ($) {
238        uri_fragment => 'x-punycode',     ## Reserved for possible future use        uri_fragment => 'x-punycode',     ## Reserved for possible future use
239    };    };
240        
241      ## -- User option for media types
242      $WIKI->{config}->{ExpandedURI q<media-type:accept-media-type>} = {
243        q<IMT:text/css##> => 1,
244        q<IMT:text/plain##> => 1,
245        q<IMT:text/x-suikawiki;version="0.9"##> => 1,
246        q<IMT:application/x.suikawiki.config;version="2.0"##> => 1,
247      };
248      
249    ## -- Expires duration templates    ## -- Expires duration templates
250    $WIKI->{config}->{entity}->{expires} = {    $WIKI->{config}->{entity}->{expires} = {
251      edit      => {delta => 60},      edit      => {delta => 60},
252      view      => {delta => 2*3600},      view      => {delta => 2*3600},
253        list      => {delta => 60},
254      lm_flaged => {delta => 30*24*3600},      lm_flaged => {delta => 30*24*3600},
255      stylesheet => {delta => 30*24*3600},      stylesheet => {delta => 30*24*3600},
256      error     => {delta => 60},      error     => {delta => 60},

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24