(佐々木@PSEG1) CSUに含まれるファイルの一覧出力に、ファイルサイズを追加

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2382 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
(no author) 2008-09-03 05:08:42 +00:00
parent e769be7b77
commit 451d10aed5

View File

@ -80,14 +80,14 @@ def check_pickuped(path, print_success)
ret ret
end end
def add_rom_list(rom_list, code, region, version) def add_rom_list(rom_list, code, region, version, size)
rom_list << [code, region, version] rom_list << [code, region, version, size]
end end
def make_rom_list(target_dir, region) def make_rom_list(target_dir, region)
region_dir = REGION_DIRS[region][0] region_dir = REGION_DIRS[region][0]
region_codes = (REGION_DIRS[region][1] + "A").unpack("A" * (REGION_DIRS[region][1].size + 1)) region_codes = (REGION_DIRS[region][1] + "A").unpack("A" * (REGION_DIRS[region][1].size + 1))
p region_codes #p region_codes
# 出力用リスト # 出力用リスト
rom_list = [] rom_list = []
@ -96,7 +96,7 @@ def make_rom_list(target_dir, region)
search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}#{region_code}*.tad") search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}#{region_code}*.tad")
files = Dir.glob(search_path) files = Dir.glob(search_path)
files.each{|tad| files.each{|tad|
add_rom_list(rom_list, "#{HEADER}#{app_code}", region_code, get_rom_version(tad)) add_rom_list(rom_list, "#{HEADER}#{app_code}", region_code, get_rom_version(tad), File.stat(tad).size)
} }
} }
} }
@ -108,20 +108,21 @@ def write_rom_list(rom_list, file_name)
"A" => "ALL", "E" => "USA", "U" => "AUS", "J" => "JPN", "P" => "EUR" "A" => "ALL", "E" => "USA", "U" => "AUS", "J" => "JPN", "P" => "EUR"
} }
out = "" out = ""
sp = [8, 20, 10, 17, 10] sp = [8, 20, 10, 17, 10, 14]
line = "" line = ""
sp.each{|s| sp.each{|s|
line += "+#{"-" * s}" line += "+#{"-" * s}"
} }
line += "+\n" line += "+\n"
out += line out += line
out += sprintf("|%#{sp[0]}s|%-#{sp[1]}s|%#{sp[2]}s|%-#{sp[3]}s|%#{sp[4]}s|\n", out += sprintf("|%#{sp[0]}s|%-#{sp[1]}s|%#{sp[2]}s|%-#{sp[3]}s|%#{sp[4]}s|%#{sp[5]}s|\n",
"コード", "名前", "リージョン", "タイトルID", "バージョン") "コード", "名前", "リージョン", "タイトルID", "バージョン", "ファイルサイズ")
out += line out += line
rom_list.each{|rom| rom_list.each{|rom|
rom_data = ROM_DATA[rom[0]] rom_data = ROM_DATA[rom[0]]
out += sprintf("|%#{sp[0]}s|%-#{sp[1]}s|%-#{sp[2]}s|%8s %8x|%#{sp[4]}s|\n", size = (rom[3].to_s).reverse.scan(/.{1,3}/).join(",").reverse
rom[0] + rom[1], rom_data[0],region_name[rom[1]], rom_data[1], (rom[0] + rom[1]).unpack("N")[0], rom[2]); out += sprintf("|%#{sp[0]}s|%-#{sp[1]}s|%-#{sp[2]}s|%8s %8x|%#{sp[4]}s|%#{sp[5]}s|\n",
rom[0] + rom[1], rom_data[0],region_name[rom[1]], rom_data[1], (rom[0] + rom[1]).unpack("N")[0], rom[2], size);
} }
out += line out += line
File.open(file_name, "w") {|file| File.open(file_name, "w") {|file|
@ -149,16 +150,18 @@ def check(target_dir, region)
ALL_REGION.each{|app_code| ALL_REGION.each{|app_code|
# オールリージョンのロムが含まれているかのチェック # オールリージョンのロムが含まれているかのチェック
search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}A*.tad") search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}A*.tad")
if ret &= check_pickuped(search_path, false) #if ret &= check_pickuped(search_path, false)
add_rom_list(rom_list, "#{HEADER}#{app_code}", "A", get_rom_version(search_path)) #add_rom_list(rom_list, "#{HEADER}#{app_code}", "A", get_rom_version(search_path))
end #end
check_pickuped(search_path, false)
} }
FIX_REGION.each{|app_code| FIX_REGION.each{|app_code|
# 各リージョン固有のロムが含まれているかのチェック # 各リージョン固有のロムが含まれているかのチェック
search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}#{region_code}*.tad") search_path = File.join(target_dir, region_dir, "#{HEADER}#{app_code}#{region_code}*.tad")
if ret &= check_pickuped(search_path, false) #if ret &= check_pickuped(search_path, false)
add_rom_list(rom_list, "#{HEADER}#{app_code}", region_code, get_rom_version(search_path)) #add_rom_list(rom_list, "#{HEADER}#{app_code}", region_code, get_rom_version(search_path))
end #end
ret &= check_pickuped(search_path, false)
} }
(ALL_REGION + FIX_REGION).each{|app_code| (ALL_REGION + FIX_REGION).each{|app_code|
# HNxy が 各リージョンごと1つだけ存在するかのチェック # HNxy が 各リージョンごと1つだけ存在するかのチェック