attach_on_hikifarm 差分 - IvyValley MEMO (Bibouroku)
- 最後の更新で追加された部分はこのように表示します。
- 最後の更新で削除された部分は
このように表示します。
Hiki0.7-devel-20040909.では、attach.cgiが今までのHikiFarmディレクトリにattach.cgiを置いておくという方法では使えなくなったので、代わりの方法が提示されていた。Hikiをバージョンアップしたので対応せざるを得なくなった。以下がその内容です。
!attachの位置
:attach.rb:プラグインディレクトリにコピー
:attach.cgi:Hikiインストールディレクトリのhiki.confやhiki.rbと同じ場所にコピー
!HikiFarm用attach.cgiの作成
#!/usr/bin/env ruby
hiki=''
eval( open( '../hikifarm.conf' ){|f|f.read.untaint} )
$:.unshift "#{hiki}"
load "#{hiki}/attach.cgi"
これをそれぞれのWikiにattach.cgiとしてコピーの上chmod0744に設定する。これでattach.cgiが使えるようになる.
!HikiFarm内のindex.cgiを改造
HikiFarm内で新しく作られたWikiについてどうするか試してみた。要望が有ってからattach.cgiを個別にコピーした方が安全かもしれないが、一つの可能性と言うことで。
index.cgiの80行目から
def attach( wiki )
<<-ATTACH
#!#{@ruby}
hiki=''
eval( open( '../hikifarm.conf' ){|f|f.read.untaint} )
$:.unshift "\#{hiki}"
load "\#{hiki}/attach.cgi"
ATTACH
end
242行目から
File::open( "#{wiki}/attach.cgi", 'w' ) do |f|
f.puts( attach( wiki ) )
f.chmod( 0744 )
end
この2つで、新しくWikiを作ったらそのディレクトリに、attach.cgiがchmod0744で作られる。もちろん標準で、hikiconf.rbとindex.cgiも出来ている。
これだけでは、オプションの記述が出来ないので、「tDiaryの一つのインストールで…」を参考に、共有のhikiconf.rbとそれを呼び出す改造を試みた。
共有のhikiconf.rbは/home/hoge/etc/hikiconf.rb等として作っておけばよいattach.cgiに必要な設定は、
@options['attach.form'] = 'edit'
である、これで編集画面にattach.cgiのFORMが表示される。
これを呼び出す仕組みをHikiFarmのindex.cgiに仕掛けてやれば出来上がり。
105行目 '''eval( File::open( "\#{hiki}/hiki.conf" ){|f| f.read.untaint} )'''
の後に
eval( File::readlines( "/home/hoge/etc/hikiconf.rb" ).join.untaint )
新しいWikiを作って試して見るべし。いたずらされると怖いなぁ(^
!attachの位置
:attach.rb:プラグインディレクトリにコピー
:attach.cgi:Hikiインストールディレクトリのhiki.confやhiki.rbと同じ場所にコピー
!HikiFarm用attach.cgiの作成
#!/usr/bin/env ruby
hiki=''
eval( open( '../hikifarm.conf' ){|f|f.read.untaint} )
$:.unshift "#{hiki}"
load "#{hiki}/attach.cgi"
これをそれぞれのWikiにattach.cgiとしてコピーの上chmod0744に設定する。これでattach.cgiが使えるようになる.
!HikiFarm内のindex.cgiを改造
HikiFarm内で新しく作られたWikiについてどうするか試してみた。要望が有ってからattach.cgiを個別にコピーした方が安全かもしれないが、一つの可能性と言うことで。
index.cgiの80行目から
def attach( wiki )
<<-ATTACH
#!#{@ruby}
hiki=''
eval( open( '../hikifarm.conf' ){|f|f.read.untaint} )
$:.unshift "\#{hiki}"
load "\#{hiki}/attach.cgi"
ATTACH
end
242行目から
File::open( "#{wiki}/attach.cgi", 'w' ) do |f|
f.puts( attach( wiki ) )
f.chmod( 0744 )
end
この2つで、新しくWikiを作ったらそのディレクトリに、attach.cgiがchmod0744で作られる。もちろん標準で、hikiconf.rbとindex.cgiも出来ている。
これだけでは、オプションの記述が出来ないので、「tDiaryの一つのインストールで…」を参考に、共有のhikiconf.rbとそれを呼び出す改造を試みた。
共有のhikiconf.rbは/home/hoge/etc/hikiconf.rb等として作っておけばよいattach.cgiに必要な設定は、
@options['attach.form'] = 'edit'
である、これで編集画面にattach.cgiのFORMが表示される。
これを呼び出す仕組みをHikiFarmのindex.cgiに仕掛けてやれば出来上がり。
105行目 '''eval( File::open( "\#{hiki}/hiki.conf" ){|f| f.read.untaint} )'''
の後に
eval( File::readlines( "/home/hoge/etc/hikiconf.rb" ).join.untaint )
新しいWikiを作って試して見るべし。いたずらされると怖いなぁ(^