Sha256: c1e4e0262c7c0fe17aa90fe08f8dede6774932b176acfa6c93c14de82955c964

Contents?: true

Size: 1.3 KB

Versions: 33

Compression:

Stored size: 1.3 KB

Contents

require_relative '../tasklib'

module RakeDocker
  module Tasks
    class Prepare < TaskLib
      parameter :name, :default => :prepare

      parameter :image_name, :required => true

      parameter :work_directory, :required => true

      parameter :copy_spec, :default => []
      parameter :create_spec, :default => []

      def process_arguments(args)
        self.name = args[0] if args[0]
      end

      def define
        desc "Prepare for build of #{image_name} image"
        task name do
          image_directory = File.join(work_directory, image_name)
          mkdir_p image_directory

          copy_spec.each do |entry|
            from = entry.is_a?(Hash) ? entry[:from] : entry
            to = entry.is_a?(Hash) ?
                File.join(image_directory, entry[:to]) :
                image_directory

            if File.directory?(from)
              mkdir_p to
              cp_r from, to
            else
              cp from, to
            end
          end

          create_spec.each do |entry|
            content = entry[:content]
            to = entry[:to]
            file = File.join(image_directory, to)

            mkdir_p(File.dirname(file))
            File.open(file, 'w') do |f|
              f.write(content)
            end
          end
        end
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
rake_docker-0.23.0 lib/rake_docker/tasks/prepare.rb
rake_docker-0.22.0.pre.pre.1 lib/rake_docker/tasks/prepare.rb
rake_docker-0.21.0 lib/rake_docker/tasks/prepare.rb
rake_docker-0.20.0.pre.pre.4 lib/rake_docker/tasks/prepare.rb
rake_docker-0.20.0.pre.pre.3 lib/rake_docker/tasks/prepare.rb
rake_docker-0.20.0.pre.pre.2 lib/rake_docker/tasks/prepare.rb
rake_docker-0.20.0.pre.pre.1 lib/rake_docker/tasks/prepare.rb
rake_docker-0.19.0 lib/rake_docker/tasks/prepare.rb
rake_docker-0.18.0.pre.pre.1 lib/rake_docker/tasks/prepare.rb
rake_docker-0.17.0 lib/rake_docker/tasks/prepare.rb
rake_docker-0.16.1.pre2 lib/rake_docker/tasks/prepare.rb
rake_docker-0.16.1.pre1 lib/rake_docker/tasks/prepare.rb
rake_docker-0.16.0 lib/rake_docker/tasks/prepare.rb
rake_docker-0.15.1.pre2 lib/rake_docker/tasks/prepare.rb
rake_docker-0.15.1.pre1 lib/rake_docker/tasks/prepare.rb
rake_docker-0.15.0 lib/rake_docker/tasks/prepare.rb
rake_docker-0.14.1.pre1 lib/rake_docker/tasks/prepare.rb
rake_docker-0.14.0 lib/rake_docker/tasks/prepare.rb
rake_docker-0.13.0 lib/rake_docker/tasks/prepare.rb
rake_docker-0.12.0 lib/rake_docker/tasks/prepare.rb