#!/usr/bin/env ruby
#-*-ruby-*-
require "dpklib/command"
require "dpklib/parsearg"
require "dpklib/resource"

class FindResProgram < Dpklib::CommandLineProgram
  def start
    opts = Dpklib.parse_args(argv, "s", "e:") || usage

    is_strict = opts[:s]
    resenv = opts[:e] || Dpklib::DEFAULT_RESOURCE_PATH_ENVNAME
    loader = Dpklib::ResourceLoader.new(Dpklib.parse_env_to_pathes(resenv))
    
    opts.empty? && usage
    while resource = opts.shift
      begin
        found = loader[resource]
        puts(found)
      rescue Dpklib::ResourceNotFoundError
        is_strict ? die("#{$!} (#{resenv})") : puts
      end
    end
  end

  def usage
    die(<<-EOF)
usage: #{progname} [-e RESOURCE_PATH_ENVNAME] FILE ...
  -e RESOURCE_PATH_ENVNAME: (default: #{Dpklib::DEFAULT_RESOURCE_PATH_ENVNAME})
    Searches resource from environmental variable RESOURCE_PATH_ENVNAME.
  -s: Strict mode. (Aborts if resource is not found. )
    EOF
  end
end #/FindResProgram
FindResProgram.exec
