Sha256: 1bef85cb195561e267aed5f22cf525abe4a084995b104c29a99fdb8cd49c95d6

Contents?: true

Size: 1.31 KB

Versions: 6

Compression:

Stored size: 1.31 KB

Contents

module Nucleon
module Action
module Network
class Remote < CORL.plugin_class(:nucleon, :cloud_action)

  include Mixin::Action::Project
  include Mixin::Action::Push

  #-----------------------------------------------------------------------------
  # Info

  def self.describe
    super(:network, :remote, 980)
  end

  #-----------------------------------------------------------------------------
  # Settings

  def configure
    super do
      codes :project_failure, :push_failure

      project_config
      push_config
    end
  end

  #---

  def ignore
    node_ignore + [ :propogate_push, :pull, :push, :net_remote ]
  end

  def arguments
    [ :project_reference ]
  end

  #-----------------------------------------------------------------------------
  # Operations

  def execute
    super do |node|
      ensure_network do
        info('start')

        settings[:pull] = false
        settings[:push] = true

        if project = project_load(network.directory, false, false)
          provider = settings[:project_provider]

          if settings[:project_reference].match(/^\s*([a-zA-Z0-9_-]+):::(.*)\s*$/)
            provider = $1
          end

          myself.status = code.push_failure unless push(project)
        else
          myself.status = code.project_failure
        end
      end
    end
  end
end
end
end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
corl-0.5.18 lib/nucleon/action/network/remote.rb
corl-0.5.17 lib/nucleon/action/network/remote.rb
corl-0.5.16 lib/nucleon/action/network/remote.rb
corl-0.5.15 lib/nucleon/action/network/remote.rb
corl-0.5.14 lib/nucleon/action/network/remote.rb
corl-0.5.13 lib/nucleon/action/network/remote.rb