Sha256: cd3f6650351ba20d5411db525e7778f083d89f0c0a676ec5358c97f3d23d30ab

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'yaml'

module Sct
  class ShellCommand

    def error message
      UI.error message
      exit 1
    end

    def execute args, options
      command = args.empty? ? "sh" : args.join(" ")

      file = "docker-compose.dev.yml"

      if !File.exist? file
        error "Could not find file '#{file}'."
      end

      manifest = YAML.load File.read file

      services = manifest["services"].to_a

      service, service_spec = services.first

      container = service_spec["container_name"]

      project = `docker container inspect --format '{{index .Config.Labels "com.docker.compose.project"}}' #{container}`.chomp

      if project == "spend-cloud"
        print "This container was not started with 'sct dev'. Are you sure you want to continue? [y/N] ".red

        answer = $stdin.readline.chomp.downcase

        if answer != "y"
          exit
        end
      end

      user = options.root ? "root:root" : "$(id -u):$(id -g)"

      system "docker exec -it --user #{user} #{container} #{command}"
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sct-1.1.2 sct/lib/sct/commands/shell.rb