lib/milc/base.rb in milc-0.1.4 vs lib/milc/base.rb in milc-0.2.0
- old
+ new
@@ -1,14 +1,11 @@
# coding: utf-8
require "milc"
-require 'json'
require 'erb'
require 'yaml'
-require 'optparse'
-require 'shellwords'
require 'logger_pipe'
def YAML.load_file_with_erb(yaml_path)
erb = ERB.new(IO.read(yaml_path))
@@ -17,83 +14,42 @@
YAML.load(text)
end
module Milc
module Base
- include Milc::Dsl::Gcloud
- include Milc::Dsl::Mgcloud
- include Milc::Dsl::Ansible
-
def logger
Milc.logger
end
def execute(cmd, options = {})
options[:dry_run] = Milc.dry_run
res = LoggerPipe.run(logger, cmd, options)
block_given? ? yield(res) : res
end
- def load_from_yaml(yaml_path)
- @config = YAML.load_file_with_erb(yaml_path)
- load_config
- end
-
- attr_reader :config
+ attr_accessor :config
attr_reader :project
def dry_run
Milc.dry_run
end
+ # overriden
def load_config
@project = config['PROJECT'] || ENV['PROJECT']
end
- def show_help_and_exit1
- ## シェルスクリプトのUsage
- $stderr.puts help_message
- exit 1
- end
-
+ # overriden
def help_message
## スクリプト名
cmdname = File.basename($0) # $PROGRAM_NAME を推奨
## シェルスクリプトのUsage
"Usage: #{cmdname} -c CONF_FILE"
end
- def command_options
- "nVc:" # n と V と c: は必須
- end
-
+ # overriden
def load_options(options)
- if options["c"]
- load_from_yaml(options["c"])
- else
- show_help_and_exit1
- end
- end
-
- 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)
- options = args.getopts(command_options)
- show_help_and_exit1 unless args.empty?
-
- Milc.dry_run = !!options["n"]
- Milc.verbose = !!options["V"]
-
- load_options(options)
- end
-
- def run(args)
- setup(args)
- process
- # exit 0
end
end
end