Sha256: 7e82df4ff16e3f58bc56fd863c723cd222d415751013a365977449eb0fc4ee14

Contents?: true

Size: 1.75 KB

Versions: 9

Compression:

Stored size: 1.75 KB

Contents

class Kubes::CLI
  class Init < Sequence
    def self.options
      [
        [:app, aliases: ["a"], required: true, desc: "Docker repo name. Example: web. Generates .kubes/APP/resources folder"],
        [:force, type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files"],
        [:type, aliases: ["t"], default: "yaml", desc: "Type: dsl or yaml"],
        [:repo, required: true, desc: "Docker repo name. Example: user/repo. Configures .kubes/config.rb"],
      ]
    end

    options.each { |args| class_option(*args) }

  private
    # Needs to be a method to its available for templates/.kubes/resources/%app%
    def app
      @options[:app]
    end

  public
    def create_dockefile
      return if File.exist?("Dockerfile")
      set_source("docker")
      directory ".", "."
    end

    def create_base_files
      set_source("base")
      directory ".", "."
    end

    def create_dsl_files
      return unless @options[:type] == "dsl"
      set_source("dsl")
      directory ".", "."
    end

    def create_yaml_files
      return if @options[:type] == "dsl"
      set_source("yaml")
      directory ".", "."
    end

    def message
      logger.info "Initialized .kubes folder"
    end

    def adjust_gitignore
      ignores = %w[
        .kubes/output
        .kubes/state
      ].map {|l| "#{l}\n"} # the readlines will have lines with \n so keep consistent for processing
      if File.exist?(".gitignore")
        lines = IO.readlines(".gitignore")
        if lines.detect { |l| l.include?('.kubes/output') }
          return # early
        else
          lines += ignores
        end
      else
        lines = ignores
      end

      text = lines.join('')
      IO.write(".gitignore", text)
      puts "Updated .gitignore"
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
kubes-0.3.3 lib/kubes/cli/init.rb
kubes-0.3.2 lib/kubes/cli/init.rb
kubes-0.3.1 lib/kubes/cli/init.rb
kubes-0.3.0 lib/kubes/cli/init.rb
kubes-0.2.6 lib/kubes/cli/init.rb
kubes-0.2.5 lib/kubes/cli/init.rb
kubes-0.2.4 lib/kubes/cli/init.rb
kubes-0.2.3 lib/kubes/cli/init.rb
kubes-0.2.2 lib/kubes/cli/init.rb