Module: Lace
- Extended by:
- Lace
- Included in:
- Lace
- Defined in:
- lib/lace.rb,
lib/cmd/help.rb,
lib/cmd/list.rb,
lib/cmd/fetch.rb,
lib/cmd/setup.rb,
lib/cmd/remove.rb,
lib/cmd/update.rb,
lib/lace/utils.rb,
lib/cmd/inspect.rb,
lib/cmd/upgrade.rb,
lib/cmd/activate.rb,
lib/cmd/validate.rb,
lib/lace/version.rb,
lib/cmd/deactivate.rb
Constant Summary collapse
- VERSION =
"0.3.4"
Instance Attribute Summary collapse
-
#failed ⇒ Object
(also: #failed?)
Returns the value of attribute failed.
Class Method Summary collapse
Instance Method Summary collapse
- #activate ⇒ Object
- #active_packages ⇒ Object
- #deactivate ⇒ Object
- #fetch ⇒ Object
- #help ⇒ Object
- #help_s ⇒ Object
- #inspect ⇒ Object
- #installed_packages ⇒ Object
- #linked_files ⇒ Object
- #list ⇒ Object
- #remove ⇒ Object
- #setup ⇒ Object
- #system(cmd, *args) ⇒ Object
- #update ⇒ Object
- #upgrade ⇒ Object
- #upgrade_lace_folder ⇒ Object
- #validate ⇒ Object
Instance Attribute Details
#failed ⇒ Object Also known as: failed?
Returns the value of attribute failed.
6 7 8 |
# File 'lib/lace.rb', line 6 def failed @failed end |
Class Method Details
.pkgs_folder ⇒ Object
9 10 11 12 13 14 15 16 |
# 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 ⇒ Object
18 19 20 |
# File 'lib/lace.rb', line 18 def self.pstore @pstore ||= PStore.new(pkgs_folder/".lace.pstore") end |
Instance Method Details
#activate ⇒ Object
6 7 8 9 10 |
# File 'lib/cmd/activate.rb', line 6 def activate package_name = ARGV.shift raise ResourceNotSpecified unless package_name PackageUtils.activate package_name end |
#active_packages ⇒ Object
13 14 15 16 17 |
# File 'lib/cmd/list.rb', line 13 def active_packages linked_files.map do |path| Pathname.new(File.dirname(path)).basename.to_s end.uniq end |
#deactivate ⇒ Object
5 6 7 8 9 |
# File 'lib/cmd/deactivate.rb', line 5 def deactivate package_name = ARGV.shift raise ResourceNotSpecified unless package_name PackageUtils.deactivate package_name end |
#fetch ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 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. onoe "Removing fetched files" FileUtils.rm_rf(target_folder) Lace.failed = true end end |
#help ⇒ Object
33 34 35 |
# File 'lib/cmd/help.rb', line 33 def help puts HELP end |
#help_s ⇒ Object
36 37 38 |
# File 'lib/cmd/help.rb', line 36 def help_s HELP end |
#inspect ⇒ Object
17 18 19 20 21 22 |
# 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 ⇒ Object
19 20 21 22 23 |
# File 'lib/cmd/list.rb', line 19 def installed_packages Dir.glob(File.join(Lace.pkgs_folder, "**")).sort.map do |p| Pathname.new(p).basename.to_s end end |
#linked_files ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/cmd/list.rb', line 5 def linked_files home_dir = ENV["HOME"] Dir.foreach(home_dir).map do |filename| next if filename == '.' or filename == '..' File.readlink File.join(home_dir, filename) if File.symlink? File.join(home_dir, filename) end.compact.uniq end |
#list ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/cmd/list.rb', line 25 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}" end else puts "There are no pkgs installed" end end |
#remove ⇒ Object
5 6 7 8 9 |
# File 'lib/cmd/remove.rb', line 5 def remove package_name = ARGV.shift raise ResourceNotSpecified unless package_name PackageUtils.remove package_name end |
#setup ⇒ Object
5 6 7 8 |
# File 'lib/cmd/setup.rb', line 5 def setup package_name = ARGV.shift PackageUtils.setup package_name end |
#system(cmd, *args) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 |
# 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 ⇒ Object
5 6 7 8 9 |
# File 'lib/cmd/update.rb', line 5 def update resource = ARGV.shift raise ResourceNotSpecified unless resource PackageUtils.update resource end |
#upgrade ⇒ Object
5 6 7 8 9 10 11 12 13 |
# 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 ⇒ Object
14 15 16 17 18 19 20 |
# 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 ⇒ Object
20 21 22 23 24 25 26 27 |
# 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 |