Sha256: c9e4f403b31b6efe74423c71198c120d06869fee14e33ac19c9b6b80eafbcc98
Contents?: true
Size: 1.23 KB
Versions: 2
Compression:
Stored size: 1.23 KB
Contents
require 'fileutils' require 'tempfile' module S3Repo ## # Metadata object, represents repo's DB file class Metadata < Base def initialize(params = {}) super FileUtils.mkdir_p db_dir end 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 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 def update! client.upload!('repo.db', db_path) sign_db if ENV['S3REPO_SIGN_DB'] end private def sign_db run "gpg --detach-sign --use-agent #{db_path}" client.upload!('repo.db.sig', "#{db_path}.sig") end def db_path @db_path ||= download_db end def download_db tmpfile = Tempfile.create(['repo', '.db.tar.xz'], db_dir) tmpfile << file_cache.serve('repo.db') tmpfile.close tmpfile.path end def db_dir @db_dir ||= File.absolute_path( @options[:tmpdir] || Cache::TMPDIRS.compact.first ) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
s3repo-0.3.1 | lib/s3repo/metadata.rb |
s3repo-0.3.0 | lib/s3repo/metadata.rb |