#! /usr/bin/ruby
# -*- coding: utf-8 -*-
#
# =filelist-rd.rb
#
# YYYY-MM-DD の名前を持つファイルのリストを並べた目次 rd ファイルの作成.
#
# ==USAGE
#
#    % filelist-rd.rb > hogehoge.rd
#    % filelist-rd.rb rd html txt  > hogehoge.rd
#
# ==Description:
#
# YYYY-MM-DD の名前を持つファイルのリストを並べた目次 rd ファイルを作成する.
# デフォルトは rd ファイルから Webgen で生成される htm ファイルのリストを作る. 
#
# rd 目次ヘッダ部
def rdhead
  rds = "=begin\n= #{`pwd`}=end\n"
  $time_update = Time.now.strftime("%Y/%m/%d")
  $editor = ENV['USER']
  rds << "=begin JA\n* #{$time_update} (#{$editor}) 最終更新\n=end JA\n"
  rds << "=begin EN\n* Last update #{$time_update} by #{$editor}\n=end EN\n"
  rds << <<RDEOF
=begin JA
== ファイルリスト
=end JA
=begin EN
== Filelist
=end EN
RDEOF
return rds
end

# 対象とする拡張子リストの作成
extention = Array.new
if ARGV == [] # 引数が与えられなかった時 デフォルトは rd
   extention << 'rd'
else
  ARGV.each do |i|
    extention << i
  end
end 

#
# リストに載せるファイルのリストを作成
#
$path = './'

$filelist = []
Dir.foreach("#{$path}") { |item|
  unless File::ftype(item) == "directory" 
    extention.each do |name|
      if File.extname(item) =~ /#{name}$/ 
        $filelist.push( File.basename(item) ) if File.basename(item,".#{name}") =~/\d\d\d\d-\d\d-\d\d/
      end
    end
  end
}

$filelist.sort!
$filelist.reverse!

# rd ヘッダ部分
$indexrd = rdhead


# ファイルリスト部分
$indexrd << "=begin JA\n"
$filelist.each do |filename|
    if File.extname(filename) =~ /rd$/
      basename = File.basename(filename,".rd")
      $indexrd << "* ((<#{basename}.htm|URL:#{basename}.htm.ja>)) \n"
    else
      $indexrd << "* ((<#{filename}|URL:#{filename}>)) \n"
    end
end
$indexrd << "=end JA\n"

$indexrd << "=begin EN\n"
$filelist.each do |filename|
    if File.extname(filename) =~ /rd$/
      basename = File.basename(filename,".rd")
      $indexrd << "* ((<#{basename}.htm|URL:#{basename}.htm.en>)) \n"
    else
      $indexrd << "* ((<#{filename}|URL:#{filename}>)) \n"
    end
end
$indexrd << "=end EN\n"

print $indexrd
