Feature request: pkgctl repo update
I have a lot of repos checked out locally, and always raises a need to update all clean ones, and list all dirty ones to possibly further actions. This is currently achieved with a small local script, but since it is possible to run "pkgctl repo configure *" today, it could probably be a good idea to be integrated into pkgctl itself.
The script I use for now:
#!/usr/bin/ruby
require 'concurrent'
pool = Concurrent::FixedThreadPool.new(Concurrent.processor_count)
def `(cmd)
system(cmd)
end
modified = []
Dir["*/"].each do |dir|
if File.exists? "#{dir}/PKGBUILD"
pool.post do
puts "Updating #{dir}"
`cd #{dir} && git pull`
if $? != 0
modified << dir
end
end
end
end
pool.shutdown
pool.wait_for_termination
if modified.length > 0
puts "The following packages have local changes:"
puts modified.join("\n")
end
(Note: Here I simply run "git pull" blindly because I have configured rebase as default merge strategy so it will always error out if the work dir isn't clean)