Sha256: e24cce88d72a0ecfcfcd9ea0f242a41a9153c272bd056325b4175341cf7b77af
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
#!/usr/bin/env ruby begin require 'stickler' rescue LoadError require 'rubygems' $: << File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")) require 'stickler' end cli = Stickler::CLI.new(ARGV, ENV) begin cli.run rescue => e $stderr.puts "ERROR: #{e}" $stderr.puts cli.usage.to_s end __END__ gem = ARGV.shift ver = ARGV.shift || Gem::Requirement.default require 'rubygems/source_info_cache' require 'rubygems/dependency_list' original_dep = Gem::Dependency.new( gem, ver ) # actually search through and find the ones for this platform def spec_from_dependency(dep) spec_and_source = Gem::SourceInfoCache.search_with_source(dep).reverse.first spec = spec_and_source.first return spec end dep_stack = [] dep_stack.push(spec_from_dependency(original_dep)) dep_list = Gem::DependencyList.new seen = {} until dep_stack.empty? spec = dep_stack.pop next if spec.nil? or seen[spec.name] puts "---> #{spec.full_name}" seen[spec.name] = true spec.dependencies.each do |dep| d = spec_from_dependency(dep) next if seen[d.name] puts "<--- #{d.full_name}" dep_stack.push(d) end dep_list.add spec end dep_list.dependency_order.reverse.each do |s| puts "Install #{s.full_name}" end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stickler-0.1.0 | bin/stickler |
stickler-0.1.1 | bin/stickler |