class PackageUtils
Public Class Methods
Source
# 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
Source
# 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
Source
# 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
Source
# 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
Source
# 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
Source
# 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.message) odie('Package remains installed but was not activated') end
Source
# 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
Source
# 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