module Lace
Constants
- VERSION
Attributes
Public Class Methods
Source
# File lib/lace.rb, line 9 def self.pkgs_folder packages_folder = Pathname.new(ENV["HOME"]).join(".lace.pkgs") if ENV["LACE_FOLDER"] packages_folder = Pathname.new(ENV["LACE_FOLDER"]) end packages_folder end
Source
# File lib/lace.rb, line 18 def self.pstore @pstore ||= PStore.new(pkgs_folder/".lace.pstore") end
Public Instance Methods
Source
# File lib/cmd/activate.rb, line 5 def activate package_name = ARGV.shift raise ResourceNotSpecified unless package_name PackageUtils.activate package_name end
Source
# File lib/cmd/list.rb, line 5 def active_packages installed_packages.select(&:is_active?) end
Source
# File lib/cmd/apply.rb, line 10 def apply package_name = ARGV.shift raise ResourceNotSpecified unless package_name ohai "Applying package #{package_name}" package = Package.new(package_name, ARGV.first) diff = PackageUtils.diff(package_name) if diff.added.empty? && diff.removed.empty? puts 'Everything is already in sync. Nothing to do.' return end diff.added.each do |f| dest = f.as_dotfile(Dir.home, package.path) dest_path = dest.to_path.gsub(Dir.home, '$HOME') puts "Link #{f.basename} to #{dest_path}?" next unless ARGV.confirm?("Link #{f.basename} to #{dest_path}?") package.link_file_or_directory(f, dest, force: true) ohai "Linked" end diff.removed.each do |f| dest = f.as_dotfile(Dir.home, package.path) dest_path = dest.to_path.gsub(Dir.home, '$HOME') next unless ARGV.confirm?("Remove link for #{f.basename} from #{dest_path}?") package.unlink_file(f, force: true) ohai "Removed" end end
Source
# File lib/cmd/deactivate.rb, line 5 def deactivate package_name = ARGV.shift raise ResourceNotSpecified unless package_name PackageUtils.deactivate package_name end
Source
# File lib/cmd/diff.rb, line 9 def diff package_name = ARGV.shift raise ResourceNotSpecified unless package_name package = Package.new(package_name, ARGV.first) diff = PackageUtils.diff package_name if diff.added.empty? && diff.removed.empty? ohai 'Everything is already in sync.' return end ohai 'The following files would be added [+] or removed [-]' diff.added.each do |f| puts "[+] #{f.basename} -> #{f.as_dotfile(Dir.home, package.path).to_path.gsub(Dir.home, '$HOME')}" end diff.removed.each do |f| puts "[-] #{f.basename} -> #{f.as_dotfile(Dir.home, package.path).to_path.gsub(Dir.home, '$HOME')}" end end
Source
# File lib/cmd/fetch.rb, line 5 def fetch resource = ARGV.shift desired_package_name = ARGV.value "name" raise ResourceNotSpecified unless resource package_name, target_folder = PackageUtils.fetch(resource, desired_package_name) begin Package.new(package_name, false) rescue PackageFactsNotFound => e onoe e.message onoe "Removing fetched files" FileUtils.rm_rf(target_folder) Lace.failed = true end end
Source
# File lib/cmd/inspect.rb, line 17 def inspect resource = ARGV.shift raise ResourceNotSpecified unless resource package = PackagePresenter.new Package.new(resource, false) puts ERB.new(INSPECT).result(binding) end
Source
# File lib/cmd/list.rb, line 9 def installed_packages Dir.glob(File.join(Lace.pkgs_folder, "**")).sort.map do |p| Package.new(Pathname.new(p).basename.to_s, false) end end
Source
# File lib/cmd/list.rb, line 15 def list if installed_packages.length > 0 installed_packages.map do |package| puts "[#{Tty.green}#{package.is_active? ? "*" : " "}#{Tty.reset}] #{package.name}#{package.is_modified? ? " (has local changes)":""}" end else puts "There are no pkgs installed" end end
Source
# File lib/cmd/remove.rb, line 5 def remove package_name = ARGV.shift raise ResourceNotSpecified unless package_name PackageUtils.remove package_name end
Source
# File lib/cmd/setup.rb, line 9 def setup package_name = ARGV.shift PackageUtils.setup package_name end
Source
# File lib/lace/utils.rb, line 100 def system cmd, *args puts "#{cmd} #{args*' '}" if ARGV.verbose? fork do yield if block_given? args.collect!{|arg| arg.to_s} exec(cmd.to_s, *args) rescue nil exit! 1 # never gets here unless exec failed end Process.wait $?.success? end
Source
# File lib/cmd/update.rb, line 5 def update resource = ARGV.shift raise ResourceNotSpecified unless resource PackageUtils.update resource end
Source
# File lib/cmd/upgrade.rb, line 5 def upgrade require 'cmd/list' if Lace.active_packages.empty? upgrade_lace_folder else onoe "Please deactivate all packages before continuing" Lace.failed = true end end
Source
# File lib/cmd/upgrade.rb, line 14 def upgrade_lace_folder old_dir = Pathname.new(ENV["HOME"])/".cassias" if old_dir.exist? File.rename old_dir, Lace.pkgs_folder old_dir.rmdir_if_possible end end
Source
# File lib/cmd/validate.rb, line 24 def validate resource = ARGV.shift flavor = ARGV.shift raise ResourceNotSpecified unless resource validation = PackageValidator.new(PackageFacts.new(resource), flavor) puts ERB.new(VALIDATE, trim_mode: '-').result(binding) Lace.failed = true if validation.has_errors? end
Source
# File lib/cmd/where.rb, line 5 def where package_name = ARGV.shift raise ResourceNotSpecified unless package_name begin package = Package.new(package_name, false) puts "#{package.path}" rescue PackageFactsNotFound => e onoe "asd" Lace.failed = true end end