ダミーのindex.htmlを自動作成

ダミーのindex.htmlを自動的に作成するRubyスクリプトを書いてみた。Webサーバーのディレクトリ内ファイルが一覧表示されてしまうのを回避するためのアレである*1

スクリプトソース

#!/usr/bin/ruby
# 指定されたディレクトリ下を再帰的に調べて、
# index.〜に相当するファイルがなければ、
# ダミーのindex.htmlを作成する。

require 'find'

dummy_content = '<html><head></head><body></body></html>'
ARGV.each do |arg|
  Find.find(File.expand_path(arg)) do |path|
    next unless FileTest.directory?(path)
    index_pattern = File.join(path, 'index.{html,htm,shtml,shtm,php,cgi}')
    index_file = Dir.glob(index_pattern, File::FNM_CASEFOLD)
    if index_file.size > 0
      puts index_file
    else
      File.open(File.join(path, 'index.html'), "w") {|f|
        f.write(dummy_content)
      }
    end
  end
end

使い方

適当なテキストエディタでスクリプトソースを打ち込んで保存し、実行権限を付けておく。dummy-index.rbという名前で保存したとして、

$ ./dummy-index.rb 'ダミーindex.htmlを作成したいディレクトリ'

のようにすれば、指定したディレクトリ(Webサイトのローカルコピーが納められたフォルダ)内を再帰的に走査してindex.〜というファイルが無いディレクトリを発見するとダミーのindex.htmlファイルを作成していく。既にindex.なにがしというファイルが存在する場合はそのパスを表示する(ダミーファイルは作成しない)。

(2009-01-02)


©2007 "TAKAHASHI Ryoji" @zone0.net
Last updated: 2012-02-06