Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 32 additions & 30 deletions rake_tasks/python.rake
Original file line number Diff line number Diff line change
Expand Up @@ -67,46 +67,48 @@ end

desc 'Copy known generated files for local development (use `./go py:local_dev all` to copy everything)'
task :local_dev, [:all] do |_task, arguments|
Bazel.execute('build', [], '//py:selenium')
Bazel.execute('build', [], '//py:selenium-wheel')

bazel_bin = 'bazel-bin/py/selenium/webdriver'
lib_path = 'py/selenium/webdriver'

copy_all = arguments[:all] == 'all'
if copy_all
FileUtils.rm_rf("#{lib_path}/common/devtools")
FileUtils.cp_r("#{bazel_bin}/.", lib_path, remove_destination: true)
if arguments[:all] == 'all'
dirs = Dir.children(bazel_bin)
files = []
else
bidi_src = "#{bazel_bin}/common/bidi"
bidi_dest = "#{lib_path}/common/bidi"
if Dir.exist?(bidi_src)
FileUtils.mkdir_p(bidi_dest)
Dir.children(bidi_src).sort.each do |entry|
src = File.join(bidi_src, entry)
dest = File.join(bidi_dest, entry)
next unless File.file?(src) || File.symlink?(src)

resolved_src = File.symlink?(src) ? File.realpath(src) : src
FileUtils.rm_f(dest)
FileUtils.cp(resolved_src, dest)
end
end
dirs = %w[common/bidi common/devtools]
files = %w[
remote/getAttribute.js remote/isDisplayed.js remote/findElements.js
common/mutation-listener.js common/bidi-mutation-listener.js
common/linux/selenium-manager common/macos/selenium-manager common/windows/selenium-manager.exe
firefox/webdriver_prefs.json
]
end

%w[common/devtools common/linux common/macos common/windows].each do |dir|
src = "#{bazel_bin}/#{dir}"
dest = "#{lib_path}/#{dir}"
next unless Dir.exist?(src)
dirs.each do |dir|
src_dir = "#{bazel_bin}/#{dir}"
dest_dir = "#{lib_path}/#{dir}"

Comment thread
titusfortner marked this conversation as resolved.
FileUtils.rm_rf(dest)
FileUtils.cp_r(src, dest)
end
FileUtils.rm_rf(dest_dir)
# Restore any git tracked files in the directory we just deleted
SeleniumRake.git.checkout_file('HEAD', dest_dir) unless SeleniumRake.git.ls_files(dest_dir).empty?
Comment thread
titusfortner marked this conversation as resolved.

%w[getAttribute.js isDisplayed.js findElements.js].each do |atom|
dest = "#{lib_path}/remote/#{atom}"
FileUtils.rm_f(dest)
FileUtils.cp("#{bazel_bin}/remote/#{atom}", dest)
# Copy each file individually to resolve Bazel's cache symlinks
Dir.glob(File.join(src_dir, '**', '*')).each do |src|
next unless File.file?(src)

dest = File.join(dest_dir, src.delete_prefix("#{src_dir}/"))
FileUtils.mkdir_p(File.dirname(dest))
FileUtils.cp(File.realpath(src), dest)
end
Comment thread
qodo-code-review[bot] marked this conversation as resolved.
end

files.each do |file|
dest = "#{lib_path}/#{file}"
FileUtils.mkdir_p(File.dirname(dest))
FileUtils.rm_f(dest)
FileUtils.cp(File.realpath("#{bazel_bin}/#{file}"), dest)
end
Comment thread
titusfortner marked this conversation as resolved.
Comment thread
titusfortner marked this conversation as resolved.
Comment thread
titusfortner marked this conversation as resolved.
end

desc 'Generate and stage Python documentation'
Expand Down