Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/ruby
- # convert a legacy config.xml
- require 'rubygems'
- require 'active_support'
- require 'rexml/document'
- include REXML
- stdin = ARGF.read
- if stdin != ""
- begin
- x = Document.new stdin
- locale = x.root.attributes["locale"]
- menuUrl = x.elements["//setting[@key='menuUrl']"].attributes['value']
- minimumMenuRefreshTime = x.elements["//setting[@key='minimumMenuRefreshTime']"].attributes['value']
- eventFeedPrefix = x.elements["//setting[@key='eventFeedPrefix']"].attributes['value']
- minimumEventRefreshTime = x.elements["//setting[@key='minimumEventRefreshTime']"].attributes['value']
- domain = menuUrl.match('http:\/\/(.*)\/')[1]
- bookingMarketNames = x.elements["//setting[@key='bookingMarketNames']"].attributes['value']
- cornerMarketNames = x.elements["//setting[@key='cornerMarketNames']"].attributes['value']
- scoreMarketNames = x.elements["//setting[@key='scoreMarketNames']"].attributes['value']
- betSlipFunctionName = x.elements["//setting[@key='betSlipFunctionName']"].attributes['value']
- dict = x.elements.to_a("//setting[@key='language']//dict")
- menuAllEvents = x.elements["//setting[@key='menuAllEvents']"].attributes['value']
- menu = x.elements.to_a("//setting[@key='menuTopLevel']//menu")
- imageType = x.elements["//setting[@key='imageType']"].attributes['value']
- imageBasePath = x.elements["//setting[@key='imageBasePath']"].attributes['value']
- defaultEventImage = x.elements["//setting[@key='defaultEventImage']"].attributes['value']
- eventTypeImage = x.elements.to_a("//setting[@key='eventTypeImages']//eventTypeImage")
- eventImage = x.elements.to_a("//setting[@key='eventImageKeys']//eventImage")
- # Create the builder...
- xm = Builder::XmlMarkup.new(:target => $stdout, :indent => 1)
- xm.instruct!
- xm.comment! "WARNING: AUTO GENERATED CONFIG (converted) DO NOT EDIT"
- xm.comment! "orbis feed domain : #{domain}"
- xm.config( :locale => locale, :name => "config_#{locale}" ) {
- xm.comment! "service"
- xm.setting( :key => 'eventService', :value => eventFeedPrefix )
- xm.setting( :key => 'minimumEventRefreshTime', :value => minimumEventRefreshTime )
- xm.setting( :key => 'menuService', :value => menuUrl )
- xm.setting( :key => 'minimumMenuRefreshTime', :value => minimumMenuRefreshTime )
- xm.setting( :key => 'serviceDomain', :value => domain )
- xm.comment! "javascript interface - betslip function name"
- xm.setting( :key => 'betSlipFunctionName', :value => betSlipFunctionName )
- xm.comment! "market names"
- xm.setting( :key => 'bookingMarketNames', :value => bookingMarketNames )
- xm.setting( :key => 'cornerMarketNames', :value => cornerMarketNames )
- xm.setting( :key => 'scoreMarketNames', :value => scoreMarketNames )
- xm.comment! "language"
- xm.setting( :key => 'language' ) {
- dict.each { |mx|
- xm.dict( :key => mx.attributes['key'], :value => mx.attributes['value'] )
- }
- xm.dict( :key => 'menuAllEvents', :value => menuAllEvents )
- }
- xm.comment! "menu"
- xm.setting( :key => 'menuTopLevel' ) {
- menu.each { |mx|
- xm.menu( :name => mx.attributes['name'], :key => mx.attributes['key'], :filter => mx.attributes['filter'], :order => mx.attributes['order'] )
- }
- }
- xm.comment! "runtime images"
- xm.setting( :key => 'defaultEventImage', :value => defaultEventImage )
- xm.setting( :key => 'imageBasePath', :value => imageBasePath )
- xm.setting( :key => 'imageType', :value => imageType )
- xm.comment! "image - event id"
- xm.setting( :key => 'eventTypeImages' ) {
- eventImage.each { |ex|
- xm.eventImage( :key => ex.attributes['key'], :value => ex.attributes['value'].match(/(.*)(\.png)/)[1] )
- }
- }
- xm.comment! "event type images"
- xm.setting( :key => 'eventTypeImages' ) {
- eventTypeImage.each { |ex|
- xm.eventTypeImage( :filename => ex.attributes['filename'].match(/(.*)(\.png)/)[1] )
- }
- }
- }
- rescue
- puts "incoming config format not recognised"
- end
- else
- puts "Usage: source | ./convert.rb > dest"
- end
Add Comment
Please, Sign In to add comment