2010-08-18 04:42:57 +00:00
|
|
|
#!/usr/bin/env ruby
|
|
|
|
# Add qwandry's library to the load path
|
2010-11-09 06:31:09 +00:00
|
|
|
$:.unshift File.dirname(__FILE__) + '/../lib'
|
2010-08-18 04:42:57 +00:00
|
|
|
# Require it
|
2010-11-09 06:31:09 +00:00
|
|
|
require "qwandry.rb"
|
2010-08-18 04:42:57 +00:00
|
|
|
|
2010-11-10 17:24:23 +00:00
|
|
|
# Create launcher
|
|
|
|
@qwandry = Qwandry::Launcher.new
|
2010-08-18 04:42:57 +00:00
|
|
|
|
|
|
|
opts = OptionParser.new do |opts|
|
2010-11-09 03:39:00 +00:00
|
|
|
opts.banner = "Usage: qwandry [options] name"
|
2010-08-18 04:42:57 +00:00
|
|
|
opts.separator ""
|
|
|
|
|
2010-11-10 17:24:23 +00:00
|
|
|
opts.on("-r", "--repo LABEL", "Only search in repository LABEL","Repositories:", *@qwandry.repositories.keys.map{|k| "* #{k}"}) do |label|
|
|
|
|
if @qwandry.repositories.has_key? label
|
|
|
|
@repository_label = label
|
|
|
|
else
|
|
|
|
STDERR.puts "Repository '#{label}' in not available, searching all repositories"
|
|
|
|
end
|
2010-11-09 03:39:00 +00:00
|
|
|
end
|
2010-11-09 06:31:09 +00:00
|
|
|
|
2010-11-10 08:26:26 +00:00
|
|
|
opts.separator ""
|
2010-08-18 04:42:57 +00:00
|
|
|
opts.on("-e", "--editor EDITOR", "Use EDITOR to open the package") do |editor|
|
2010-11-09 06:31:09 +00:00
|
|
|
@editor = editor
|
2010-08-18 04:42:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
opts.on_tail("-h", "--help", "Show this message") do
|
|
|
|
puts opts
|
|
|
|
exit
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
opts.parse! ARGV
|
|
|
|
if ARGV.length != 1
|
|
|
|
puts opts
|
|
|
|
exit(1)
|
|
|
|
end
|
|
|
|
|
2010-11-09 06:31:09 +00:00
|
|
|
# Configure default values
|
|
|
|
@qwandry.editor = @editor if @editor
|
|
|
|
|
2010-08-18 04:42:57 +00:00
|
|
|
name = ARGV.pop
|
2010-11-10 17:24:23 +00:00
|
|
|
packages = @qwandry.find(name, @repository_label)
|
2010-08-18 04:42:57 +00:00
|
|
|
|
|
|
|
package = nil
|
|
|
|
case packages.length
|
|
|
|
when 0
|
|
|
|
puts "No packages matched '#{name}'"
|
|
|
|
exit 404 # Package not found -- hehe, super lame.
|
|
|
|
when 1
|
|
|
|
package = packages.first
|
|
|
|
else
|
|
|
|
packages.each_with_index do |package, index|
|
|
|
|
puts "%3d. %s" % [index+1, package.name]
|
|
|
|
end
|
|
|
|
|
|
|
|
print ">> "
|
|
|
|
index = gets.to_i-1
|
|
|
|
package = packages[index]
|
|
|
|
end
|
|
|
|
|
|
|
|
@qwandry.launch(package) if package
|