/[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.11 by wakaba, Sun Feb 8 09:01:57 2004 UTC revision 1.12 by wakaba, Wed Feb 18 07:23:48 2004 UTC
# Line 22  use strict; Line 22  use strict;
22    
23  sub config ($) {  sub config ($) {
24    my $WIKI = shift;    my $WIKI = shift;
25      use Cwd qw(abs_path);
26        
27    ## -- Filesystem path mapping    ## -- Filesystem path mapping
28    for (    for (
29       [db__cache__dir          => q"./wikidata/lock/"],       [db__cache__dir          => q"./wikidata/lock/"],
30       [db__content__dir        => q"./wikidata/page"],       [db__content__dir        => q"./wikidata/page/"],
31       [db__content__error_log  => q"./wikidata/log/db-content.log"],       [db__content__error_log  => q"./wikidata/log/db-content.log"],
32         [db__bdb__home_dir       => q"./wikidata/lock/"],
33         [db__bdb__log_dir        => q"./wikidata/log/bdb/"],
34         [db__bdb__log_file       => q"./wikidata/log/bdb.log"],
35         [db__bdb__temp_dir       => q"./wikidata/lock/"],
36       [db__lock__dir           => q"./wikidata/lock/"],       [db__lock__dir           => q"./wikidata/lock/"],
37         [db__lock__log_file      => q"./wikidata/log/lock.log"],
38         [db__log__dir            => q"./wikidata/log/"],
39         [db__temp__dir           => q"./wikidata/lock/"],
40    ) {    ) {
41      $WIKI->{config}->{path_to}->{$_->[0]} = $_->[1];      ## On system that does not set current directory as main script
42        ## directory, you should specify it instead of using "abs_path".
43        $WIKI->{config}->{path_to}->{$_->[0]} = abs_path $_->[1];
44    }    }
45    
46    ## -- WikiPlugin    ## -- WikiPlugin
# Line 81  sub config ($) { Line 91  sub config ($) {
91          delete $opt{prop_info}->{-db};          delete $opt{prop_info}->{-db};
92        }});        }});
93                
94        ## Cache        ## Cache DBs
95        require SuikaWiki::DB::FileSystem::SuikaWikiCache09;        require SuikaWiki::DB::FileSystem::SuikaWikiCache09;
96        my $cachedb = SuikaWiki::DB::FileSystem::SuikaWikiCache09->new        my $cachedb = SuikaWiki::DB::FileSystem::SuikaWikiCache09->new
97              (directory => $wiki->{config}->{path_to}->{db__cache__dir});              (directory => $wiki->{config}->{path_to}->{db__cache__dir});
# Line 98  sub config ($) { Line 108  sub config ($) {
108            delete $opt{prop_info}->{-db};            delete $opt{prop_info}->{-db};
109          }});          }});
110                
111          ## Berkely DB Environment Preparation
112          use BerkeleyDB;
113          my $bdbenv = new BerkeleyDB::Env
114             -Home => $wiki->{config}->{path_to}->{db__bdb__home_dir},
115             -Config => {
116               DB_DATA_DIR => $wiki->{config}->{path_to}->{db__content__dir},
117               DB_LOG_DIR => $wiki->{config}->{path_to}->{db__bdb__log_dir},
118               DB_TMP_DIR => $wiki->{config}->{path_to}->{db__bdb__temp_dir},
119             },
120             -ErrFile => $wiki->{config}->{path_to}->{db__bdb__log_file},
121             -Flags => DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL,
122             -Verbose => $wiki->{config}->{debug}->{db};
123          
124          ## Referer Database (See Referer plugin module)
125          $wiki->{db}->_set_prop_db (referer => {-db_open => sub {
126            require SuikaWiki::DB::Hash;
127            new SuikaWiki::DB::Hash constructor => sub {
128              tie my %db, 'BerkeleyDB::Hash',
129                            -Filename => 'referer.db',
130                            -Env => $bdbenv,
131                            -Flags => DB_CREATE,
132                            -Mode => 0644;
133              \%db;
134           };
135          }});
136    
137          ## HTTP Request Logging Database (See RequestLog plugin module)
138          $wiki->{db}->_set_prop_db (log__http_request => {-db_open => sub {
139            require SuikaWiki::DB::Hash;
140            new SuikaWiki::DB::Hash constructor => sub {
141              tie my %db, 'BerkeleyDB::Hash',
142                            -Filename => 'http-request-log.db',
143                            -Env => $bdbenv,
144                            -Flags => DB_CREATE,
145                            -Mode => 0644;
146              \%db;
147           };
148          }});
149          
150        ## Additional WikiDB properties should be defined here        ## Additional WikiDB properties should be defined here
151        # ...            # ...    
152    };    };
153    
154      push @{$WIKI->{event}->{input_close}}, sub {
155        my ($wiki, $event) = @_;
156        SuikaWiki::Plugin->module_package ('Referer')
157                         ->add_referer (wiki => $wiki,
158                                        uri => $wiki->{input}->meta_variable
159                                                 ('HTTP_REFERER'));
160        SuikaWiki::Plugin->module_package ('RequestLog')
161                         ->http_request_log (wiki => $wiki,
162                                             prop => 'log__http_request');
163      };
164    
165    ## -- WikiName of special purpose WikiPages    ## -- WikiName of special purpose WikiPages
166    $WIKI->{config}->{page} = {    $WIKI->{config}->{page} = {
167      Default         => $WIKI->name ([qw/HomePage/]),      Default         => $WIKI->name ([qw/HomePage/]),
# Line 148  sub config ($) { Line 208  sub config ($) {
208    $WIKI->{config}->{debug} = {    $WIKI->{config}->{debug} = {
209      general => 1,      general => 1,
210      db => 0,      db => 0,
211        format => 0,
212      view => 1,      view => 1,
213    };    };
214    

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24