class S3Repo::Metadata
Metadata
object, represents repo's DB file
Public Instance Methods
add_packages(paths)
click to toggle source
# File lib/s3repo/metadata.rb, line 8 def add_packages(paths) @db_path = nil paths.each do |path| puts "Adding #{File.basename(path)} to repo.db" run("repo-add #{db_path} #{path}") end update! end
packages()
click to toggle source
# File lib/s3repo/metadata.rb, line 31 def packages return @packages if @packages cmd = "bsdtar tf #{db_path}" @packages = run(cmd).split.map { |x| x.split('/').first }.uniq end
remove_packages(packages)
click to toggle source
# File lib/s3repo/metadata.rb, line 17 def remove_packages(packages) @db_path = nil packages.each do |package| puts "Removing #{package} from repo.db" run("repo-remove #{db_path} #{package}") end update! end
update!()
click to toggle source
# File lib/s3repo/metadata.rb, line 26 def update! sign_db if @options[:sign_db] db_names.each { |x| client.upload_file(x, db_path) } end
Private Instance Methods
db_names()
click to toggle source
# File lib/s3repo/metadata.rb, line 43 def db_names @db_names ||= ['repo', repo_name].flat_map do |x| [x + '.db.tar.xz', x + '.db'] end end
db_path()
click to toggle source
# File lib/s3repo/metadata.rb, line 62 def db_path @db_path ||= file_cache.download(db_names.first) end
repo_name()
click to toggle source
# File lib/s3repo/metadata.rb, line 39 def repo_name @options[:repo_name] || raise('No repo name given') end
sig_names()
click to toggle source
# File lib/s3repo/metadata.rb, line 49 def sig_names @sig_names ||= db_names.map { |x| x + '.sig' } end
sign_db()
click to toggle source
# File lib/s3repo/metadata.rb, line 57 def sign_db sig_path = signer.sign(db_path) sig_names.each { |x| client.upload_file(x, sig_path) } end
signer()
click to toggle source
# File lib/s3repo/metadata.rb, line 53 def signer @options[:signer] ||= Signer.new(@options) end