summaryrefslogtreecommitdiff
path: root/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb')
-rwxr-xr-xSource/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb74
1 files changed, 74 insertions, 0 deletions
diff --git a/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb b/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb
new file mode 100755
index 000000000..21d306e2c
--- /dev/null
+++ b/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb
@@ -0,0 +1,74 @@
+#!/usr/bin/ruby
+
+require 'fileutils'
+require 'tmpdir'
+
+if ARGV.size != 0
+ puts "usage: #{File.basename $0}"
+ exit 1
+end
+
+WEB_INSPECTOR_PATH = File.expand_path File.join(File.dirname(__FILE__), "..")
+JAVASCRIPTCORE_PATH = File.expand_path File.join(File.dirname(__FILE__), "..", "..", "JavaScriptCore")
+
+$code_generator_path = File.join JAVASCRIPTCORE_PATH, "inspector", "scripts", "generate-inspector-protocol-bindings.py"
+$versions_directory_path = File.join WEB_INSPECTOR_PATH, "Versions"
+$web_inspector_protocol_legacy_path = File.join WEB_INSPECTOR_PATH, "UserInterface", "Protocol", "Legacy"
+
+class Task
+ def initialize(input_json_path, output_directory_path)
+ @input_json_path = input_json_path
+ @output_directory_path = output_directory_path
+ end
+
+ def run
+ output_filename = "InspectorBackendCommands.js"
+ display_input = File.basename @input_json_path
+ display_output = File.join @output_directory_path.gsub(/^.*?\/UserInterface/, "UserInterface"), output_filename
+ puts "#{display_input} -> #{display_output}"
+
+ Dir.mktmpdir do |tmpdir|
+ dependency = @dependency_json_path ? "'#{@dependency_json_path}'" : ""
+ cmd = "#{$code_generator_path} --force --outputDir '#{tmpdir}' --framework JavaScriptCore '#{@input_json_path}' #{dependency}"
+ %x{ #{cmd} }
+ if $?.exitstatus != 0
+ puts "ERROR: Error Code (#{$?.exitstatus}) Evaluating: #{cmd}"
+ exit 1
+ end
+
+ generated_path = File.join tmpdir, output_filename
+ if !File.exists?(generated_path)
+ puts "ERROR: Generated file does not exist at expected path."
+ exit 1
+ end
+
+ FileUtils.mkdir_p @output_directory_path
+ FileUtils.cp generated_path, @output_directory_path
+ end
+ end
+end
+
+def all_tasks
+ tasks = []
+
+ had_error = false
+ Dir.glob(File.join($versions_directory_path, "*.json")).each do |version_path|
+ match = File.basename(version_path).match(/^Inspector\-(.*?)\-([^-]+?)\.json$/)
+ if match
+ output_path = File.join $web_inspector_protocol_legacy_path, match[2]
+ tasks << Task.new(version_path, output_path)
+ else
+ puts "ERROR: Version file (#{version_path}) did not match the template Inspector-<ANYTHING>-<VERSION>.js"
+ had_error = true
+ end
+ end
+ exit 1 if had_error
+
+ tasks
+end
+
+def main
+ all_tasks.each { |task| task.run }
+end
+
+main