require "option_parser" require "./package/*" root : String? = nil args = [] of String OptionParser.parse do |parser| parser.banner = "usage: package [options] [arguments]" parser.unknown_args do |unknown_args| args = unknown_args end end context = Package::Context.new context.root = root unless root.nil? command = args[0] args.shift begin case command when "add" context.install args.map { |s| Package::Atom.from_string s } when "remove" context.remove args.map { |s| Package::Atom.from_string s } when "update" context.update_repository_cache end rescue e : Package::CollisionException context.error e e.collisions.each do |file| context.error " - #{file}" end rescue e : Package::Exception context.error e end