Есть только три способа запуска INSTALL.shКак использовать OptionParse, чтобы только один флаг
./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 и ничего больше.