Class: PackageUtils
- Inherits:
-
Object
- Object
- PackageUtils
- Defined in:
- lib/lace/package/utils.rb
Class Method Summary collapse
- .activate(package_name) ⇒ Object
- .deactivate(package_name) ⇒ Object
- .diff(package_name) ⇒ Object
- .fetch(uri, desired_package_name = nil) ⇒ Object
- .remove(package_name) ⇒ Object
- .setup(package_name) ⇒ Object
- .symlinks_to_package(package) ⇒ Object
- .update(package_name) ⇒ Object
Class Method Details
.activate(package_name) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/lace/package/utils.rb', line 43 def self.activate(package_name) package = Package.new(package_name, ARGV.first) raise(AlreadyActiveError) if Package.new(package_name, false).is_active? ohai('Activating') package.activate! end |
.deactivate(package_name) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/lace/package/utils.rb', line 35 def self.deactivate(package_name) package = Package.new(package_name, ARGV.first) raise(NonActiveFlavorError) unless package.is_active? || ARGV.force? ohai('Deactivating') package.deactivate! end |
.diff(package_name) ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/lace/package/utils.rb', line 65 def self.diff(package_name) home_dir = Dir.home package = Package.new(package_name, ARGV.first) config_files = Set.new(package.facts.config_files) files_pointing_to_package = symlinks_to_package(package) files_from_manifest_not_in_home = Set.new(config_files.reject do |f| f.as_dotfile(home_dir, package.path).exist? end) Diff.new(files_from_manifest_not_in_home, (files_pointing_to_package - config_files)) end |
.fetch(uri, desired_package_name = nil) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/lace/package/utils.rb', line 9 def self.fetch(uri, desired_package_name = nil) downloader_cls = DownloadStrategyDetector.detect(uri) downloader = downloader_cls.new(uri, desired_package_name) raise(PackageAlreadyInstalled, downloader.target_folder) if downloader.target_folder.exist? downloader.fetch [downloader.name, downloader.target_folder] end |
.remove(package_name) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/lace/package/utils.rb', line 18 def self.remove(package_name) package = Package.new(package_name, false) raise(CannotRemoveActivePackage) if package.is_active? ohai('Removing') FileUtils.rm_rf(package.path) end |
.setup(package_name) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/lace/package/utils.rb', line 26 def self.setup(package_name) package = Package.new(package_name, ARGV.first) package.activate! package.setup rescue StandardError => e onoe(e.) odie('Package remains installed but was not activated') end |
.symlinks_to_package(package) ⇒ Object
76 77 78 79 80 81 |
# File 'lib/lace/package/utils.rb', line 76 def self.symlinks_to_package(package) home_dir = Dir.home found_links = Set.new traverse_directory(home_dir, package) { |entry| (found_links << Pathname.new(File.readlink(entry))) } found_links end |
.update(package_name) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/lace/package/utils.rb', line 51 def self.update(package_name) package = Package.new(package_name, false) raise(OnlyGitReposCanBeUpdatedError) unless package.is_git_repo? updater = GitUpdateStrategy.new(package_name) was_active_before_update = package.is_active? deactivate(package_name) if was_active_before_update ohai('Updating') updater.update activate(package_name) if was_active_before_update package = Package.new(package_name, false) package.after_update end |