#! ruby -Ks $Version = "1.6.4" $AppName = "Ruby 1.6.4" $Title = "Ruby 1.6.4 [i386-cygwin]" $Destination = "/ruby" $TopDir = "//c/ruby" $README = "//c/ruby/doc/misc/welcome.txt" $RUBY_SUFFIX = ".rb" $RUBYW_SUFFIX = ".rba" #------------------------------------- def dirtree( dir ) $dirs += [dir] dirp = Dir.open(dir) files = [] for f in dirp next if f == '.' or f == '..' full = dir + File::Separator + f # next unless File.directory? full files.push(full) end dirp.close files.sort! for f in files if File.directory? f dirtree( f ) else $files[dir] += [f] $filesize[dir] += File.size(f) end end end #------------------------------------- def numlist(n) ary = [] for i in 1..n do ary << i end ary.join(" ") end #------------------------------------- def dest1() groups = $files.keys.size print <<-EOT [InstallShield Wizard] iDate=2 iTime=0 Flag=0 ISX.EXE Size=679936 ISX.EXE Date=11:21:52AM 1999/4/8 ISX.EXE Ver=2.1.2.62 SETUP.EXE Size=45312 SETUP.EXE Date=9:12:24AM 1999/3/23 SETUP.EXE Ver=3.0.111.0 SETUP.INS Size=81342 SETUP.INS Date=11:26:40AM 1999/4/8 SETUP.INS Ver=無効 _INST16.EX_ Size=81342 _INST16.EX_ Date=11:26:40AM 1999/4/8 _INST16.EX_ Ver=無効 _INST32I.EX_ Size=294079 _INST32I.EX_ Date=9:12:22AM 1999/3/23 _INST32I.EX_ Ver=無効 ISDEPEND.INI Size=6912 ISDEPEND.INI Date=5:00:00AM 1999/8/31 ISDEPEND.INI Ver=無効 SWDEPEND.INI Size=9763 SWDEPEND.INI Date=5:00:00AM 1999/8/31 SWDEPEND.INI Ver=無効 ICOMP.EXE Size=119808 ICOMP.EXE Date=9:12:24AM 1999/3/23 ICOMP.EXE Ver=3.00.062 SPLIT.EXE Size=90624 SPLIT.EXE Date=9:12:24AM 1999/3/23 SPLIT.EXE Ver=3.00.060 PACKLIST.EXE Size=87552 PACKLIST.EXE Date=9:12:24AM 1999/3/23 PACKLIST.EXE Ver=3.00.060 Version=2.02 DevTool=Delphi 5 Platform=Win32 DisksBuilt=1 DisksDir= TabsVisit=111111111000011111 LangNum=0 LangDir= [VisualDesign] AppName=#{$AppName} AppExe= AppExeFile= Version=#{$Version} Company=Ruby Title=#{$Title} TitleType=1 BackgrndBmp= BackgrndAlign=4 Backgrnd=1 BackgrndColor=10 Uninstall=1 UninstallChecked=1 Silent=1 SmsMode=0 [Types] Types=1 Type1Components=1 Type1Name=全て Type1ComponentList=1 [Components] Components=1 Component1Groups=#{groups} Component1Name=Application Files Component1Description=Application files needed to run the application Component1GroupList=#{numlist(groups)} [Groups] Groups=#{groups} EOT end #------------------------------------- def dest2() n = 0 $files.keys.sort.each do |dirname| n += 1 dir = dirname.gsub($TopDir, '') dir1 = dir.gsub('/', '_').gsub('\.', '_') dir2 = dir.gsub('/', '\\') print <<-EOT Group#{n}Size=#{$filesize[dirname]} Group#{n}Files=#{$files[dirname].size} Group#{n}Name=#{dir1} Group#{n}Dir=#{dir2} Group#{n}Update=1 Group#{n}TargetOS=-1 EOT i = 0 $files[dirname].each do |filename| i += 1 fn = filename[2,1] + ":" + filename[3..-1].gsub('/', '\\') print <<-EOT Group#{n}File#{i}=#{fn} EOT end end end #------------------------------------- def dest3() print <<-EOT [Sequence] DestinationLocationDir=#{$Destination.gsub('/', '\\')} DatabaseLocationDir=\\data SelectProgramFolderName=#{$AppName} WelcomeMessage=1 WelcomeMessageFile= ReadMeFileBrowser=1 ReadMeFileBrowserFile=#{$README[2,1]+':'+$README[3..-1].gsub('/', '\\')} DestinationLocation=1 ProgressBar=1 SetupComplete=1 SetupCompleteRebootOpt=1 SetupCompleteExec= SetupCompleteExecParam= SetupCompleteExecReadme= [RegEntries] Reg1Path=HKEY_CLASSES_ROOT Reg1Val1Type=0 Reg1Val1Name=(Default) Reg1Val1Data=(value not set) Reg1Vals=1 Reg2Path=HKEY_CURRENT_USER Reg2Val1Type=0 Reg2Val1Name=(Default) Reg2Val1Data=(value not set) Reg2Vals=1 Reg3Path=HKEY_LOCAL_MACHINE Reg3Val1Type=0 Reg3Val1Name=(Default) Reg3Val1Data=(value not set) Reg3Vals=1 Reg4Path=HKEY_USERS Reg4Val1Type=0 Reg4Val1Name=(Default) Reg4Val1Data=(value not set) Reg4Vals=1 Reg5Path=HKEY_CURRENT_CONFIG Reg5Val1Type=0 Reg5Val1Name=(Default) Reg5Val1Data=(value not set) Reg5Vals=1 Reg6Path=HKEY_DYN_DATA Reg6Val1Type=0 Reg6Val1Name=(Default) Reg6Val1Data=(value not set) Reg6Vals=1 Regs=6 [Registry] [Icons] Icons=2 Icon1Param= Icon1Cmd=[_bin]\\rubywin.exe Icon1Description=RubyWin Icon1WorkingDir=[_bin] Icon1IconFile= Icon1RealFile=[_bin]\\rubywin.exe Icon1WhichIcon=0 Icon1KeyVirtual=0 Icon1KeyFlags=0 Icon1StartMenu=0 Icon1Window=0 Icon2Param= Icon2Cmd=[_doc_misc]\\Ruby Home Page.URL Icon2Description=Ruby Home Page Icon2WorkingDir=[_doc_misc] Icon2IconFile= Icon2RealFile=[_doc_misc]\\Ruby Home Page.URL Icon2WhichIcon=0 Icon2KeyVirtual=0 Icon2KeyFlags=0 Icon2StartMenu=0 Icon2Window=0 [Autoexec] PathDir=[_bin] ShareLocks= ShareFiles= Command= [CopyToFloppy] DriveOption=パス DestinationPath= DestinationPathOneFile= Password= [Uninstall] UserUninstall=0 EOT end #------------------------------------- $dirs = [] $files = Hash.new([]) $filesize = Hash.new(0) dirtree( $TopDir ) dest1 dest2 dest3