module Lace

Constants

VERSION

Attributes

failed[RW]
failed?[RW]

Public Class Methods

pkgs_folder() click to toggle 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
pstore() click to toggle source
# File lib/lace.rb, line 18
def self.pstore
  @pstore ||= PStore.new(pkgs_folder/".lace.pstore")
end

Public Instance Methods

activate() click to toggle source
# File lib/cmd/activate.rb, line 5
def activate
  package_name = ARGV.shift
  raise ResourceNotSpecified unless package_name
  PackageUtils.activate package_name
end
active_packages() click to toggle source
# File lib/cmd/list.rb, line 20
def active_packages
  linked_files.map do |path|
    Pathname.new(File.dirname(path)).basename.to_s
  end.uniq
end
deactivate() click to toggle source
# File lib/cmd/deactivate.rb, line 5
def deactivate
  package_name = ARGV.shift
  raise ResourceNotSpecified unless package_name
  PackageUtils.deactivate package_name
end
fetch() click to toggle 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
help() click to toggle source
# File lib/cmd/help.rb, line 33
def help
  puts HELP
end
help_s() click to toggle source
# File lib/cmd/help.rb, line 36
def help_s
  HELP
end
inspect() click to toggle 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
installed_packages() click to toggle source
# File lib/cmd/list.rb, line 26
def installed_packages
  Dir.glob(File.join(Lace.pkgs_folder, "**")).sort.map do |p|
    Pathname.new(p).basename.to_s
  end
end
linked_files() click to toggle source
# File lib/cmd/list.rb, line 5
def linked_files
  home_dir = Pathname.new ENV["HOME"]
  find_links home_dir
end
list() click to toggle source
# File lib/cmd/list.rb, line 32
def list
  if installed_packages.length > 0
    installed_packages.map do |d|
      package = Package.new(d, false)
      puts "[#{Tty.green}#{package.is_active? ? "*" : " "}#{Tty.reset}] #{d}#{package.is_modified? ? " (has local changes)":""}"
    end
  else
    puts "There are no pkgs installed"
  end
end
remove() click to toggle source
# File lib/cmd/remove.rb, line 5
def remove
  package_name = ARGV.shift
  raise ResourceNotSpecified unless package_name
  PackageUtils.remove package_name
end
setup() click to toggle source
# File lib/cmd/setup.rb, line 5
def setup
  package_name = ARGV.shift
  PackageUtils.setup package_name
end
system(cmd, *args) { || ... } click to toggle 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
update() click to toggle source
# File lib/cmd/update.rb, line 5
def update
  resource = ARGV.shift
  raise ResourceNotSpecified unless resource
  PackageUtils.update resource
end
upgrade() click to toggle 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
upgrade_lace_folder() click to toggle 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
validate() click to toggle source
# File lib/cmd/validate.rb, line 20
def validate
  resource = ARGV.shift
  flavor = ARGV.shift
  raise ResourceNotSpecified unless resource
  validation = PackageValidator.new(PackageFacts.new(resource), flavor)
  puts ERB.new(VALIDATE, nil, '-').result(binding)
  Lace.failed = true if validation.has_errors?
end
where() click to toggle 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