Sha256: f613d3356252a48f440e11801766685e3630e151b935c961cd3ddccd6b31d82f
Contents?: true
Size: 1.58 KB
Versions: 2
Compression:
Stored size: 1.58 KB
Contents
require "cloud_runner/ssh_key" require "cloud_runner/one_line_logger" require "cloud_runner/digital_ocean/base" require "cloud_runner/digital_ocean/api" require "cloud_runner/digital_ocean/run" module CloudRunner::DigitalOcean module Cli class Base attr_reader :options def initialize(opts={}) @options = opts.clone.freeze raise "Client id must be specified" \ unless @client_id = options[:client_id] raise "Api key must be specified" \ unless @api_key = options[:api_key] raise "Script must be specified" \ unless @script_path = options[:script] @script_path = File.realpath(@script_path) end def run_script(out, err) @out, @err = out, err set_up execute_script ensure clean_up end protected def set_up raise NotImplementedError end def execute_script step("Executing script '#{@script_path}'") do run.run_script(@script_path, @out, @err, { :ssh_logger => OneLineLogger.new(@err), }) end end def clean_up raise NotImplementedError end def run @ci_run ||= Run.new(api) end def ssh_key raise NotImplementedError end def step(description, &action) @out.puts("-----> #{description}...") action.call.tap do |result| @out.puts(result) end if action end private def api @api ||= Api.new(@client_id, @api_key) end end #~ end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cloud_runner-0.0.2 | lib/cloud_runner/digital_ocean/cli/base.rb |
cloud_runner-0.0.1 | lib/cloud_runner/digital_ocean/cli/base.rb |