Sha256: d05899a91272f2e9398fe11b051e2876860a8be6f84c4726c3a7e50af20d39bc

Contents?: true

Size: 1.58 KB

Versions: 25

Compression:

Stored size: 1.58 KB

Contents

class Ufo::CLI::New
  class Init < Sequence
    def self.options
      [
        [:app, aliases: :a, desc: "App name.  If not specified, it's inferred from the folder name"],
        [:force, type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files"],
        # note: aliases: :r messes up Usage help: ufo init -h so not using it
        [:repo, required: true, desc: "Docker repo to use. Example: ORG/REPO"],
      ]
    end
    options.each { |o| class_option(*o) }

    def set_source
      set_template_source("init")
      self.destination_root = '.'
    end

    def set_variables
      @app = options[:app] || inferred_app
      @repo = options[:repo]
    end

    def generate
      puts "Generating .ufo structure"
      directory "."
    end

    def update_gitignore
      text =<<~EOL
        .ufo/tmp
        .ufo/log
        .ufo/output
        .secrets
      EOL
      if File.exist?(".gitignore")
        append_to_file ".gitignore", text
      else
        create_file ".gitignore", text
      end
    end

    def update_dockerignore
      text = ".ufo\n"
      if File.exist?(".dockerignore")
        append_to_file ".dockerignore", text
      else
        create_file ".dockerignore", text
      end
    end

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

    def user_message
      puts "Starter .ufo files created"
      puts <<~EOL
        Congrats. You have successfully set up your project with ufo.
        To deploy to ECS:

            ufo ship

      EOL
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
ufo-6.3.2 lib/ufo/cli/new/init.rb
ufo-6.3.1 lib/ufo/cli/new/init.rb
ufo-6.3.0 lib/ufo/cli/new/init.rb
ufo-6.2.5 lib/ufo/cli/new/init.rb
ufo-6.2.4 lib/ufo/cli/new/init.rb
ufo-6.2.3 lib/ufo/cli/new/init.rb
ufo-6.2.2 lib/ufo/cli/new/init.rb
ufo-6.2.1 lib/ufo/cli/new/init.rb
ufo-6.2.0 lib/ufo/cli/new/init.rb
ufo-6.1.5 lib/ufo/cli/new/init.rb
ufo-6.1.4 lib/ufo/cli/new/init.rb
ufo-6.1.3 lib/ufo/cli/new/init.rb
ufo-6.1.2 lib/ufo/cli/new/init.rb
ufo-6.1.1 lib/ufo/cli/new/init.rb
ufo-6.1.0 lib/ufo/cli/new/init.rb
ufo-6.0.9 lib/ufo/cli/new/init.rb
ufo-6.0.8 lib/ufo/cli/new/init.rb
ufo-6.0.7 lib/ufo/cli/new/init.rb
ufo-6.0.6 lib/ufo/cli/new/init.rb
ufo-6.0.5 lib/ufo/cli/new/init.rb