Class: S3Repo::Repo
Overview
Repo object, represents an Arch repo inside an S3 bucket
Instance Method Summary
collapse
Methods inherited from Base
#initialize
Constructor Details
This class inherits a constructor from S3Repo::Base
Instance Method Details
#add_packages(paths) ⇒ Object
16
17
18
19
20
|
# File 'lib/s3repo/repo.rb', line 16
def add_packages(paths)
paths.select! { |path| upload_package(path) }
metadata.add_packages(paths) unless paths.empty?
templates.update! unless paths.empty?
end
|
#build_packages(paths) ⇒ Object
8
9
10
11
12
13
14
|
# File 'lib/s3repo/repo.rb', line 8
def build_packages(paths)
paths.each do |path|
dir = File.dirname(path)
puts "Building #{File.basename(dir)}"
Dir.chdir(dir) { run "makepkg #{@options[:makepkg_flags]}" }
end
end
|
#include?(key) ⇒ Boolean
44
45
46
|
# File 'lib/s3repo/repo.rb', line 44
def include?(key)
!packages.find { |x| x.key == key }.nil?
end
|
#packages ⇒ Object
36
37
38
|
# File 'lib/s3repo/repo.rb', line 36
def packages
package_cache.cache { parse_objects(/.*\.pkg\.tar\.xz$/) }
end
|
#prune_files ⇒ Object
27
28
29
30
31
32
33
34
|
# File 'lib/s3repo/repo.rb', line 27
def prune_files
if orphans.empty?
puts 'No orphaned files'
return
end
puts "Pruning files: #{orphans.join(', ')}"
client.delete_objects(delete: { objects: orphans.map { |x| { key: x } } })
end
|
#remove_packages(packages) ⇒ Object
22
23
24
25
|
# File 'lib/s3repo/repo.rb', line 22
def remove_packages(packages)
metadata.remove_packages(packages)
templates.update!
end
|
#signatures ⇒ Object
40
41
42
|
# File 'lib/s3repo/repo.rb', line 40
def signatures
parse_objects(/.*\.pkg\.tar\.xz\.sig$/)
end
|