# TITLE: # # GeneralOptions # # COPYING: # # Copyright (c) 2007 Psi T Corp. # # This file is part of the ProUtils' Ratch program. # # Ratch is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Ratch is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ratch. If not, see . module Ratch # General Options module GeneralOptions # Duplicate of ARGV. def argv @argv ||= ARGV.dup end # Convert command line argv to args. # # TODO Is this implmented as expected? def command_parameters argv.to_params end # Debug mode. def debug? @debug ||= %w{--debug}.any?{|a| argv.delete(a)} end # def verbose? @verbose ||= %w{--verbose}.any?{|a| argv.delete(a)} end # def verbose! @verbose = true end # def trace? @trace ||= %w{--trace}.any?{|a| argv.delete(a)} end # def trace! @trace = true end # def noharm? @noharm ||= %w{--dryrun --dry-run --noharm}.any?{|a| argv.delete(a)} end alias_method :dryrun?, :noharm? ; module_function :dryrun? def noharm! @noharm = true end alias_method :dryrun!, :noharm! ; module_function :dryrun! # Force mode. def force? @force ||= %w{--force}.any?{|a| argv.delete(a)} end def force! ; @force = true ; end end end