#!/usr/bin/ruby def loud_system(command) $stderr.puts command system command or raise end releaseName = ARGV[0] releaseTag = releaseName.gsub(/(\d)(\w)/, '\1_\2').gsub('.', '_') productName = releaseName.sub(/-.*/, '') IO.popen('svn info') do |svn| svn.each_line do |line| if line =~ /Repository Root:\s*(\S*)/ SVN = $1 break end end end TAG = File.join(SVN, 'tags', releaseTag) BUILDDIR = "Releases/#{releaseName}.build" RELEASE = "Releases/#{releaseName}" loud_system "rm -rf #{BUILDDIR} #{RELEASE} #{RELEASE}.dmg" loud_system "svn export #{TAG} #{BUILDDIR}" loud_system "cd #{BUILDDIR} && xcodebuild -configuration Deployment" loud_system "mkdir #{RELEASE}" loud_system "cp -R #{BUILDDIR}/{NEWS,README.rtf} #{BUILDDIR}/build/Deployment/#{productName}.app #{RELEASE}" loud_system "cd Releases && hdiutil create -srcfolder #{releaseName} #{releaseName}.dmg" loud_system "rm -rf #{RELEASE} #{BUILDDIR}"