Sha256: 476af18256e53311503a3b75fc89be9e543aa512570957f9bfdf119ca932cdb2

Contents?: true

Size: 1.35 KB

Versions: 32

Compression:

Stored size: 1.35 KB

Contents

require 'thor/shell'

module DockerSync
  module SyncStrategy
    class Native
      include Thor::Shell

      @options
      @sync_name

      def initialize(sync_name, options)
        @sync_name = sync_name
        @options = options

        begin
          Dependencies::Docker.ensure!
        rescue StandardError => e
          say_status 'error', "#{@sync_name} has been configured to sync with native docker volume, but docker is not found", :red
          say_status 'error', e.message, :red
          exit 1
        end
      end

      def run
        create_volume
      end

      def sync
        # noop
      end

      def get_volume_name
        @sync_name
      end

      def start_container
        # noop
      end

      def clean
        delete_volume
      end

      def stop
        # noop
      end

      private

      def create_volume
        run_cmd "docker volume create --opt type=none --opt device=\"#{@options['src']}\" --opt o=bind "\
          "--name #{get_volume_name}"

        say_status 'success', "Docker volume for #{get_volume_name} created", :white
      end

      def delete_volume
        run_cmd "docker volume ls -q | grep #{get_volume_name} && docker volume rm #{get_volume_name}"
      end

      def run_cmd(cmd)
        say_status 'command', cmd, :white if @options['verbose']

        `#{cmd}`
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
docker-sync-1.0.5 lib/docker-sync/sync_strategy/native.rb
docker-sync-1.0.4 lib/docker-sync/sync_strategy/native.rb
docker-sync-1.0.3 lib/docker-sync/sync_strategy/native.rb
docker-sync-1.0.2 lib/docker-sync/sync_strategy/native.rb
docker-sync-1.0.1 lib/docker-sync/sync_strategy/native.rb
docker-sync-1.0.0 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.7.2 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.7.1 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.7.0 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.6.0 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.14 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.13 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.11 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.11.pre.beta3 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.11.pre.beta2 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.11.pre.beta1 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.10 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.10.pre.beta1 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.9 lib/docker-sync/sync_strategy/native.rb
docker-sync-0.5.8 lib/docker-sync/sync_strategy/native.rb