Есть только три способа вызвать install.sh
./install.sh
./install.sh --force
./install.sh -f
Я могу написать это легко. Однако я пытаюсь использовать OptionParse. Это то, что я имею до сих пор.
def self.parse
option = {}
optparse = OptionParser.new do |opts|
opts.banner = "Usage: ./install.sh [--force]"
opts.on('-f', '--force', '') do |dir|
option[:force] = true
end
end
begin
optparse.parse!
rescue OptionParser::InvalidOption => e
puts e
end
end
Если пользователь вводит ./install.sh --foo, программа завершается ошибкой, и пользователь видит следующее сообщение.
invalid option: --foo
В идеале я хотел бы, чтобы баннер отображался при появлении сообщения об ошибке. Как мне это сделать?
Второй вопрос:
Если пользователь вызывает подобное ./install.sh foo (обратите внимание, что foo передается как параметр), тогда OptionParser не выдает никакой ошибки. Как предоставить пользователю сообщение о том, что эта установка принимает только один аргумент -f или --force и ничего больше.