Skip to content

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)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information