class Kontena::Cli::Stacks::Registry::PushCommand

Public Instance Methods

execute() click to toggle source
# File lib/kontena/cli/stacks/registry/push_command.rb, line 25
def execute
  exit_with_error "Can only perform push from local files" unless loader.origin == "file"
  exit_with_error "Stack file contains dependencies to local files" if includes_local_dependencies?
  exit_with_error "Stack file has services that extend from local files" if includes_local_extends?

  spinner("Pushing #{pastel.cyan(source)} to stack registry as #{loader.stack_name}") do
    unless dry_run?
      stacks_client.push(
        loader.stack_name,
        loader.content
      )
    end
  end
end
includes_local_dependencies?(dependencies = loader.dependencies) click to toggle source
# File lib/kontena/cli/stacks/registry/push_command.rb, line 16
def includes_local_dependencies?(dependencies = loader.dependencies)
  return false if dependencies.nil?
  dependencies.any? { |dep| Kontena::Cli::Stacks::YAML::StackFileLoader.for(dep['stack']).origin == 'file' || includes_local_dependencies(dep['depends']) }
end
includes_local_extends?() click to toggle source
# File lib/kontena/cli/stacks/registry/push_command.rb, line 21
def includes_local_extends?
  loader.yaml.fetch('services', {}).any? { |_, svc| svc.key?('extends') && svc['extends'].key?('file') }
end