Guest User

Untitled

a guest
May 26th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. #!/usr/bin/ruby
  2.  
  3. # convert a legacy config.xml
  4.  
  5. require 'rubygems'
  6. require 'active_support'
  7. require 'rexml/document'
  8. include REXML
  9.  
  10. stdin = ARGF.read
  11.  
  12. if stdin != ""
  13.  
  14. begin
  15.  
  16. x = Document.new stdin
  17.  
  18. locale = x.root.attributes["locale"]
  19. menuUrl = x.elements["//setting[@key='menuUrl']"].attributes['value']
  20. minimumMenuRefreshTime = x.elements["//setting[@key='minimumMenuRefreshTime']"].attributes['value']
  21. eventFeedPrefix = x.elements["//setting[@key='eventFeedPrefix']"].attributes['value']
  22. minimumEventRefreshTime = x.elements["//setting[@key='minimumEventRefreshTime']"].attributes['value']
  23. domain = menuUrl.match('http:\/\/(.*)\/')[1]
  24.  
  25. bookingMarketNames = x.elements["//setting[@key='bookingMarketNames']"].attributes['value']
  26. cornerMarketNames = x.elements["//setting[@key='cornerMarketNames']"].attributes['value']
  27. scoreMarketNames = x.elements["//setting[@key='scoreMarketNames']"].attributes['value']
  28.  
  29. betSlipFunctionName = x.elements["//setting[@key='betSlipFunctionName']"].attributes['value']
  30.  
  31. dict = x.elements.to_a("//setting[@key='language']//dict")
  32. menuAllEvents = x.elements["//setting[@key='menuAllEvents']"].attributes['value']
  33. menu = x.elements.to_a("//setting[@key='menuTopLevel']//menu")
  34.  
  35. imageType = x.elements["//setting[@key='imageType']"].attributes['value']
  36. imageBasePath = x.elements["//setting[@key='imageBasePath']"].attributes['value']
  37. defaultEventImage = x.elements["//setting[@key='defaultEventImage']"].attributes['value']
  38. eventTypeImage = x.elements.to_a("//setting[@key='eventTypeImages']//eventTypeImage")
  39. eventImage = x.elements.to_a("//setting[@key='eventImageKeys']//eventImage")
  40.  
  41. # Create the builder...
  42. xm = Builder::XmlMarkup.new(:target => $stdout, :indent => 1)
  43. xm.instruct!
  44. xm.comment! "WARNING: AUTO GENERATED CONFIG (converted) DO NOT EDIT"
  45. xm.comment! "orbis feed domain : #{domain}"
  46. xm.config( :locale => locale, :name => "config_#{locale}" ) {
  47.  
  48. xm.comment! "service"
  49. xm.setting( :key => 'eventService', :value => eventFeedPrefix )
  50. xm.setting( :key => 'minimumEventRefreshTime', :value => minimumEventRefreshTime )
  51. xm.setting( :key => 'menuService', :value => menuUrl )
  52. xm.setting( :key => 'minimumMenuRefreshTime', :value => minimumMenuRefreshTime )
  53. xm.setting( :key => 'serviceDomain', :value => domain )
  54.  
  55. xm.comment! "javascript interface - betslip function name"
  56. xm.setting( :key => 'betSlipFunctionName', :value => betSlipFunctionName )
  57.  
  58. xm.comment! "market names"
  59. xm.setting( :key => 'bookingMarketNames', :value => bookingMarketNames )
  60. xm.setting( :key => 'cornerMarketNames', :value => cornerMarketNames )
  61. xm.setting( :key => 'scoreMarketNames', :value => scoreMarketNames )
  62.  
  63. xm.comment! "language"
  64. xm.setting( :key => 'language' ) {
  65. dict.each { |mx|
  66. xm.dict( :key => mx.attributes['key'], :value => mx.attributes['value'] )
  67. }
  68. xm.dict( :key => 'menuAllEvents', :value => menuAllEvents )
  69. }
  70.  
  71. xm.comment! "menu"
  72. xm.setting( :key => 'menuTopLevel' ) {
  73. menu.each { |mx|
  74. xm.menu( :name => mx.attributes['name'], :key => mx.attributes['key'], :filter => mx.attributes['filter'], :order => mx.attributes['order'] )
  75. }
  76. }
  77.  
  78. xm.comment! "runtime images"
  79. xm.setting( :key => 'defaultEventImage', :value => defaultEventImage )
  80. xm.setting( :key => 'imageBasePath', :value => imageBasePath )
  81. xm.setting( :key => 'imageType', :value => imageType )
  82.  
  83. xm.comment! "image - event id"
  84. xm.setting( :key => 'eventTypeImages' ) {
  85. eventImage.each { |ex|
  86. xm.eventImage( :key => ex.attributes['key'], :value => ex.attributes['value'].match(/(.*)(\.png)/)[1] )
  87. }
  88. }
  89.  
  90. xm.comment! "event type images"
  91. xm.setting( :key => 'eventTypeImages' ) {
  92. eventTypeImage.each { |ex|
  93. xm.eventTypeImage( :filename => ex.attributes['filename'].match(/(.*)(\.png)/)[1] )
  94. }
  95. }
  96. }
  97.  
  98. rescue
  99. puts "incoming config format not recognised"
  100. end
  101. else
  102. puts "Usage: source | ./convert.rb > dest"
  103. end
Add Comment
Please, Sign In to add comment