Skip to content

Commit

Permalink
Clean up build files
Browse files Browse the repository at this point in the history
By moving namespaces into their own "*.rake" files. This makes the
main Rakefile a little easier to follow, and lays the groundwork for
deleting crazy fun.
  • Loading branch information
shs96c committed Sep 4, 2019
1 parent 16abfac commit 0776a74
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 102 deletions.
98 changes: 0 additions & 98 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
$LOAD_PATH.unshift File.expand_path(".")

require 'rake'
require 'rake-tasks/bazel'
require 'rake-tasks/files'
require 'net/telnet'
require 'stringio'
Expand Down Expand Up @@ -31,7 +30,6 @@ require 'rake-tasks/c'
require 'rake-tasks/selenium'
require 'rake-tasks/ie_code_generator'
require 'rake-tasks/ci'
require 'rake-tasks/copyright'

$DEBUG = orig_verbose != Rake::FileUtilsExt::DEFAULT ? true : false
if (ENV['debug'] == 'true')
Expand Down Expand Up @@ -475,77 +473,6 @@ end
desc 'Build the selenium client jars'
task 'selenium-java' => '//java/client/src/org/openqa/selenium:selenium'

namespace :node do
task :atoms => [
"//javascript/atoms/fragments:is-displayed",
"//javascript/webdriver/atoms:get-attribute",
] do
baseDir = "javascript/node/selenium-webdriver/lib/atoms"
mkdir_p baseDir

[
Rake::Task["//javascript/atoms/fragments:is-displayed"].out,
Rake::Task["//javascript/webdriver/atoms:get-attribute"].out,
].each do |atom|
name = File.basename(atom)

puts "Generating #{atom} as #{name}"
File.open(File.join(baseDir, name), "w") do |f|
f << "// GENERATED CODE - DO NOT EDIT\n"
f << "module.exports = "
f << IO.read(atom).strip
f << ";\n"
end
end
end

task :build do
sh "bazel build //javascript/node/selenium-webdriver"
end

task :'dry-run' => [
"node:build",
] do
cmd = "bazel run javascript/node/selenium-webdriver:selenium-webdriver.pack"
sh cmd
end

task :deploy => [
"node:build",
] do
cmd = "bazel run javascript/node/selenium-webdriver:selenium-webdriver.publish"
sh cmd
end

task :docs do
sh "node javascript/node/gendocs.js"
end
end

namespace :side do
task :atoms => [
"//javascript/atoms/fragments:find-element",
] do
# TODO: move directly to IDE's directory once the repositories are merged
baseDir = "build/javascript/atoms"
mkdir_p baseDir

[
Rake::Task["//javascript/atoms/fragments:find-element"].out,
].each do |atom|
name = File.basename(atom)

puts "Generating #{atom} as #{name}"
File.open(File.join(baseDir, name), "w") do |f|
f << "// GENERATED CODE - DO NOT EDIT\n"
f << "module.exports = "
f << IO.read(atom).strip
f << ";\n"
end
end
end
end

namespace :safari do
desc "Build the SafariDriver java client"
task :build => [
Expand All @@ -558,31 +485,6 @@ task :authors do
sh "(git log --use-mailmap --format='%aN <%aE>' ; cat .OLD_AUTHORS) | sort -uf > AUTHORS"
end

namespace :copyright do
task :update do
Copyright.Update(
FileList["javascript/**/*.js"].exclude(
"javascript/atoms/test/jquery.min.js",
"javascript/jsunit/**/*.js",
"javascript/node/selenium-webdriver/node_modules/**/*.js",
"javascript/selenium-core/lib/**/*.js",
"javascript/selenium-core/scripts/ui-element.js",
"javascript/selenium-core/scripts/ui-map-sample.js",
"javascript/selenium-core/scripts/user-extensions.js",
"javascript/selenium-core/scripts/xmlextras.js",
"javascript/selenium-core/xpath/**/*.js"))
Copyright.Update(
FileList["py/**/*.py"],
:style => "#")
Copyright.Update(
FileList["rb/**/*.rb"],
:style => "#",
:prefix => ["# frozen_string_literal: true\n", "\n"])
Copyright.Update(
FileList["java/**/*.java"])
end
end

at_exit do
if File.exist?(".git") && !Platform.windows?
system "sh", ".git-fixfiles"
Expand Down
9 changes: 9 additions & 0 deletions javascript/atoms/fragments/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,15 @@ closure_fragment(
],
)

closure_fragment(
name = "find-element",
function = "bot.locators.findElement",
module = "bot.locators",
deps = [
"//javascript/atoms:locators",
],
)

closure_fragment(
name = "find-elements",
function = "bot.locators.findElements",
Expand Down
2 changes: 1 addition & 1 deletion rake-tasks/bazel.rb → rakelib/bazel.rake
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ def self.execute(kind, args, target, &block)
verbose = Rake::FileUtilsExt.verbose_flag
outs = []

cmd = %w(bazelisk) + [kind, target] + (args || [])
cmd = %w(bazel) + [kind, target] + (args || [])
cmd_out = ""
Open3.popen2e(*cmd) do |stdin, stdouts, wait|
Thread.new do
Expand Down
31 changes: 28 additions & 3 deletions rake-tasks/copyright.rb → rakelib/copyright.rake
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
namespace :copyright do
task :update do
Copyright.Update(
FileList["javascript/**/*.js"].exclude(
"javascript/atoms/test/jquery.min.js",
"javascript/jsunit/**/*.js",
"javascript/node/selenium-webdriver/node_modules/**/*.js",
"javascript/selenium-core/lib/**/*.js",
"javascript/selenium-core/scripts/ui-element.js",
"javascript/selenium-core/scripts/ui-map-sample.js",
"javascript/selenium-core/scripts/user-extensions.js",
"javascript/selenium-core/scripts/xmlextras.js",
"javascript/selenium-core/xpath/**/*.js"))
Copyright.Update(
FileList["py/**/*.py"],
:style => "#")
Copyright.Update(
FileList["rb/**/*.rb"],
:style => "#",
:prefix => ["# frozen_string_literal: true\n", "\n"])
Copyright.Update(
FileList["java/**/*.java"])
end
end

module Copyright
NOTICE = <<-eos
NOTICE = <<-eos
Licensed to the Software Freedom Conservancy (SFC) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
Expand All @@ -16,7 +41,7 @@ module Copyright
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
eos
eos
def Update(files, options = {})
style = options[:style] || "//"
prefix = options[:prefix] || nil
Expand All @@ -34,7 +59,7 @@ def Update(files, options = {})
lines.any? {|line|
done = true
if (line.index(style) == 0) ||
(notice_lines[index + 1] && (line.index(notice_lines[index + 1]) == 0))
(notice_lines[index + 1] && (line.index(notice_lines[index + 1]) == 0))
index += 1
done = false
end
Expand Down
23 changes: 23 additions & 0 deletions rakelib/ide.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
namespace :side do
task :atoms => [
"//javascript/atoms/fragments:find-element",
] do
# TODO: move directly to IDE's directory once the repositories are merged
baseDir = "build/javascript/atoms"
mkdir_p baseDir

[
Rake::Task["//javascript/atoms/fragments:find-element"].out,
].each do |atom|
name = File.basename(atom)

puts "Generating #{atom} as #{name}"
File.open(File.join(baseDir, name), "w") do |f|
f << "// GENERATED CODE - DO NOT EDIT\n"
f << "module.exports = "
f << IO.read(atom).strip
f << ";\n"
end
end
end
end
46 changes: 46 additions & 0 deletions rakelib/node.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
namespace :node do
task :atoms => [
"//javascript/atoms/fragments:is-displayed",
"//javascript/webdriver/atoms:get-attribute",
] do
baseDir = "javascript/node/selenium-webdriver/lib/atoms"
mkdir_p baseDir

[
Rake::Task["//javascript/atoms/fragments:is-displayed"].out,
Rake::Task["//javascript/webdriver/atoms:get-attribute"].out,
].each do |atom|
name = File.basename(atom)

puts "Generating #{atom} as #{name}"
File.open(File.join(baseDir, name), "w") do |f|
f << "// GENERATED CODE - DO NOT EDIT\n"
f << "module.exports = "
f << IO.read(atom).strip
f << ";\n"
end
end
end

task :build do
sh "bazel build //javascript/node/selenium-webdriver"
end

task :'dry-run' => [
"node:build",
] do
cmd = "bazel run javascript/node/selenium-webdriver:selenium-webdriver.pack"
sh cmd
end

task :deploy => [
"node:build",
] do
cmd = "bazel run javascript/node/selenium-webdriver:selenium-webdriver.publish"
sh cmd
end

task :docs do
sh "node javascript/node/gendocs.js"
end
end

0 comments on commit 0776a74

Please sign in to comment.