-
-
Save mdales/793006 to your computer and use it in GitHub Desktop.
Fork of aktowns' excellent little script for converting xcode3 color themes to xcode4. Just added rubygems import
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# This script converts xccolorthemes to dtvcolorthemes for porting xcode 3.x themes to xcode 4.x | |
# created by ashley towns <[email protected]> | |
# Public domain. | |
# ./dvtcolorconvert <inputfile> | |
# spits out a .dtvcolortheme file | |
require 'rubygems' | |
require 'plist' | |
raise "Error: need a source file #{__FILE__} [file.xccolortheme]" if ARGV.length == 0 | |
def alpha inc, alpha=1 | |
"#{inc} #{alpha}" | |
end | |
def convert infile | |
hash = Plist::parse_xml infile | |
out_hash = {} | |
out_hash[:DVTSourceTextSyntaxFonts] = {} | |
out_hash[:DVTSourceTextSyntaxColors] = {} | |
hash.each do |name, node| | |
node.each do |child_name, child| | |
puts "[on] node:#{name} child:#{child_name}(#{child})" | |
if name == "Colors" | |
case child_name | |
when /Background/ | |
out_hash[:DVTSourceTextBackground] = alpha child | |
out_hash[:DVTConsoleTextBackgroundColor] = alpha child | |
out_hash[:DVTSourceTextInvisiblesColor] = alpha child | |
out_hash[:DVTSourceTextBlockDimBackgroundColor] = alpha child | |
when /InsertionPoint/ | |
out_hash[:DVTSourceTextInsertionPointColor] = alpha child | |
out_hash[:DVTConsoleTextInsertionPointColor] = alpha child | |
out_hash[:DVTDebuggerInsutrctionPointerColor] = alpha child | |
out_hash[:DVTConsoleDebuggerInputTextColor] = alpha child | |
out_hash[:DVTConsoleDebuggerOutputTextColor] = alpha child | |
out_hash[:DVTConsoleExectuableInputTextColor] = alpha child | |
out_hash[:DVTConsoleExecutableOutputTextColor] = alpha child | |
when /Selection/ | |
out_hash[:DVTSourceTextSelectionColor] = alpha child | |
out_hash[:DVTConsoleTextSelectionColor] = alpha child | |
out_hash[:DVTDebuggerPromptTextColor] = alpha child | |
else | |
out_hash[:DVTSourceTextSyntaxColors][child_name] = alpha child | |
end | |
elsif name == "Fonts" | |
case child_name | |
when /xcode.syntax.plain/ | |
child = "Inconsolata - 14pt" | |
out_hash[:DVTConsoleDebuggerInputTextFont] = child | |
out_hash[:DVTConsoleDebuggerOutputTextFont] = child | |
out_hash[:DVTConsoleDebuggerPromptTextFont] = child | |
out_hash[:DVTConsoleExecutableInputTextFont] = child | |
out_hash[:DVTConsoleExecutableOutputTextFont] = child | |
out_hash[:DVTSourceTextSyntaxFonts]['xcode.syntax.plain'] = child | |
else | |
out_hash[:DVTSourceTextSyntaxFonts][child_name] = "Inconsolata - 14pt" #child | |
end | |
else | |
raise "I don't know what #{name} is." | |
end | |
end | |
end | |
puts "Saving #{infile.gsub(/xccolortheme/,'dvtcolortheme')}" | |
fp = File.open(infile.gsub(/xccolortheme/,'dvtcolortheme'),'w') | |
fp.write out_hash.to_plist | |
fp.close | |
end | |
convert ARGV[0] | |
#Dir['*.xccolortheme'].each do |file| | |
# convert file | |
#end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
works great, thank you!