Module: Milc::Base
- Includes:
- Dsl::Ansible, Dsl::Gcloud, Dsl::Mgcloud
- Defined in:
- lib/milc/base.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#project ⇒ Object
readonly
Returns the value of attribute project.
Instance Method Summary collapse
- #command_options ⇒ Object
- #dry_run ⇒ Object
- #execute(cmd) ⇒ Object
- #help_message ⇒ Object
- #load_config ⇒ Object
- #load_from_yaml(yaml_path) ⇒ Object
- #load_options(options) ⇒ Object
- #logger ⇒ Object
- #run(args) ⇒ Object
- #setup(args) ⇒ Object
- #show_help_and_exit1 ⇒ Object
Methods included from Dsl::Ansible
Methods included from Dsl::Mgcloud
Methods included from Dsl::Gcloud
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
43 44 45 |
# File 'lib/milc/base.rb', line 43 def config @config end |
#project ⇒ Object (readonly)
Returns the value of attribute project.
44 45 46 |
# File 'lib/milc/base.rb', line 44 def project @project end |
Instance Method Details
#command_options ⇒ Object
67 68 69 |
# File 'lib/milc/base.rb', line 67 def "nVc:" # n と V と c: は必須 end |
#execute(cmd) ⇒ Object
33 34 35 36 |
# File 'lib/milc/base.rb', line 33 def execute(cmd) res = LoggerPipe.run(logger, cmd, dry_run: Milc.dry_run) block_given? ? yield(res) : res end |
#help_message ⇒ Object
60 61 62 63 64 65 |
# File 'lib/milc/base.rb', line 60 def ## スクリプト名 cmdname = File.basename($0) # $PROGRAM_NAME を推奨 ## シェルスクリプトのUsage "Usage: #{cmdname} -c CONF_FILE" end |
#load_config ⇒ Object
50 51 52 |
# File 'lib/milc/base.rb', line 50 def load_config @project = config['PROJECT'] || ENV['PROJECT'] end |
#load_from_yaml(yaml_path) ⇒ Object
38 39 40 41 |
# File 'lib/milc/base.rb', line 38 def load_from_yaml(yaml_path) @config = YAML.load_file_with_erb(yaml_path) load_config end |
#load_options(options) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/milc/base.rb', line 71 def () if ["c"] load_from_yaml(["c"]) else show_help_and_exit1 end end |
#run(args) ⇒ Object
93 94 95 96 97 |
# File 'lib/milc/base.rb', line 93 def run(args) setup(args) process # exit 0 end |
#setup(args) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/milc/base.rb', line 79 def setup(args) # ARGV.getopts については以下を参照 # http://d.hatena.ne.jp/zariganitosh/20140819/ruby_optparser_true_power # http://docs.ruby-lang.org/ja/2.1.0/method/OptionParser=3a=3aArguable/i/getopts.html args.extend(OptionParser::Arguable) unless args.is_a?(OptionParser::Arguable) = args.getopts() show_help_and_exit1 unless args.empty? Milc.dry_run = !!["n"] Milc.verbose = !!["V"] () end |
#show_help_and_exit1 ⇒ Object
54 55 56 57 58 |
# File 'lib/milc/base.rb', line 54 def show_help_and_exit1 ## シェルスクリプトのUsage $stderr.puts exit 1 end |