Class: Kiip::Repository
- Inherits:
-
Hashie::Dash
- Object
- Hashie::Dash
- Kiip::Repository
- Includes:
- Hashie::Extensions::Dash::PropertyTranslation
- Defined in:
- lib/kiip/repository.rb
Constant Summary collapse
- ID_FILE_NAME =
'.kiip_repository'
Class Method Summary collapse
Instance Method Summary collapse
- #create! ⇒ Object
- #exists? ⇒ Boolean
- #packages ⇒ Object
-
#print_content ⇒ String
Multi-line string with content of the repository.
- #restore(*package_names) ⇒ Object
- #rm(*package_names) ⇒ Object
- #sync!(*names) ⇒ Object
- #track(package_name, path) ⇒ Object
- #unlink(*package_names) ⇒ Object
Class Method Details
.get_instance(**options) ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/kiip/repository.rb', line 7 def self.get_instance(**) path = ENV['KIIP_REPO'] || raise('KIIP_REPO environment variable not defined') [:path] = %x(echo #{path}).rstrip return self.new(**) end |
Instance Method Details
#create! ⇒ Object
74 75 76 77 |
# File 'lib/kiip/repository.rb', line 74 def create! FileUtils.mkdir_p(path) FileUtils.touch(File.join(path, ID_FILE_NAME)) end |
#exists? ⇒ Boolean
20 21 22 23 |
# File 'lib/kiip/repository.rb', line 20 def exists? id_file_path = File.join(path, ID_FILE_NAME) File.exists? id_file_path end |
#packages ⇒ Object
67 68 69 70 71 72 |
# File 'lib/kiip/repository.rb', line 67 def packages ensure_existance! package_names.map do |package_name| get_package(package_name) end end |
#print_content ⇒ String
Returns multi-line string with content of the repository.
53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/kiip/repository.rb', line 53 def print_content ensure_existance! StringIO.open do |result| packages.each do |package| result.puts package.name + ':' package.entries.each do |entry| result.puts " #{entry.source} | #{entry.status}" end end result.string end end |
#restore(*package_names) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/kiip/repository.rb', line 32 def restore *package_names ensure_existance! package_names.each do |name| get_package(name).restore end end |
#rm(*package_names) ⇒ Object
79 80 81 82 83 84 |
# File 'lib/kiip/repository.rb', line 79 def rm *package_names ensure_existance! package_names.each do |package_name| get_package(package_name).rm end end |
#sync!(*names) ⇒ Object
39 40 41 42 43 |
# File 'lib/kiip/repository.rb', line 39 def sync! *names ensure_existance! names = package_names if names.empty? names.each { |name| get_package(name).sync! } end |
#track(package_name, path) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/kiip/repository.rb', line 45 def track package_name, path ensure_existance! package = get_package(package_name) package.create! unless package.exists? package.track(path) end |
#unlink(*package_names) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/kiip/repository.rb', line 25 def unlink *package_names ensure_existance! package_names.each do |name| get_package(name).unlink end end |