class Kubes::CLI::Init
Public Class Methods
options()
click to toggle source
# File lib/kubes/cli/init.rb, line 3 def self.options [ [:app, aliases: ["a"], required: true, desc: "Docker repo name. Example: web. Generates .kubes/APP/resources folder"], [:force, aliases: ["y"], 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"], [:namespace, aliases: ["n"], desc: "Namespace to use, defaults to APP-ENV. IE: demo-dev"], ] end
Public Instance Methods
adjust_gitignore()
click to toggle source
# File lib/kubes/cli/init.rb, line 85 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
create_base_files()
click to toggle source
# File lib/kubes/cli/init.rb, line 64 def create_base_files set_source("base") directory ".", "." end
create_dockefile()
click to toggle source
# File lib/kubes/cli/init.rb, line 58 def create_dockefile return if File.exist?("Dockerfile") set_source("docker") directory ".", "." end
create_dsl_files()
click to toggle source
# File lib/kubes/cli/init.rb, line 69 def create_dsl_files return unless @options[:type] == "dsl" set_source("dsl") directory ".", ".", directory_options end
create_yaml_files()
click to toggle source
# File lib/kubes/cli/init.rb, line 75 def create_yaml_files return if @options[:type] == "dsl" set_source("yaml") directory ".", ".", directory_options end
message()
click to toggle source
# File lib/kubes/cli/init.rb, line 81 def message logger.info "Initialized .kubes folder" end
Private Instance Methods
app()
click to toggle source
Needs to be a method to its available for templates/.kubes/resources/%app%
# File lib/kubes/cli/init.rb, line 17 def app @options[:app] end
default_namespace()
click to toggle source
# File lib/kubes/cli/init.rb, line 25 def default_namespace env = @options[:type] == "yaml" ? '<%= Kubes.env %>' : '#{Kubes.env}' "#{app}-#{env}" end
directory_options()
click to toggle source
# File lib/kubes/cli/init.rb, line 48 def directory_options if excludes.empty? {} else pattern = Regexp.new(excludes.join('|')) {exclude_pattern: pattern } end end
excludes()
click to toggle source
# File lib/kubes/cli/init.rb, line 30 def excludes if namespace == "default" case options[:type] when "dsl" %w[ namespace.rb.tt ] else %w[ all.yaml.tt namespace.yaml.tt ] end else [] end end
namespace()
click to toggle source
# File lib/kubes/cli/init.rb, line 21 def namespace @options[:namespace] || default_namespace end