class Comodule::Deployment::Platform

Public Class Methods

new(name, hsh={}) click to toggle source
# File lib/comodule/deployment/platform.rb, line 5
def initialize(name, hsh={})
  if ['config', 'secret_config', 'cloud_formation'].member?(name)
    raise ArgumentError, %Q|Don't use the platform name [#{name}].|
  end

  @name = name
  @project_root = hsh[:project_root] if hsh[:project_root]

  if hsh[:db_host]
    config.db ||= {}
    config.db.host = hsh[:db_host]
  end

  if hsh[:db_password]
    config.db ||= {}
    config.db.password = hsh[:db_password]
  end

  self.env = hsh[:RAILS_ENV].to_sym if hsh[:RAILS_ENV]
  self.env = hsh[:env].to_sym if hsh[:env]
end

Public Instance Methods

cloud_formation_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 75
def cloud_formation_dir
  @cloud_formation_dir ||= be_dir(File.join(platform_dir, 'cloud_formation'))
end
common_cloud_formation_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 79
def common_cloud_formation_dir
  @common_cloud_formation_dir ||= be_dir(File.join(platform_root, 'cloud_formation'))
end
common_crontab_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 88
def common_crontab_dir
  @common_crontab_dir ||= File.join(common_config_dir, 'crontab')
end
common_shell_script_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 105
def common_shell_script_dir
  @common_shell_script_dir ||= File.join(common_config_dir, 'shell_script')
end
create() click to toggle source
# File lib/comodule/deployment/platform.rb, line 27
def create
  be_dir(
    platform_root,
    common_config_dir,
    common_secret_config_dir,
    common_cloud_formation_dir,
    platform_dir,
    config_dir,
    secret_config_dir,
    cloud_formation_dir
  )

  be_file(
    File.join(common_config_dir, '.keep'),
    File.join(common_cloud_formation_dir, '.keep'),
    File.join(config_dir, '.keep'),
    File.join(cloud_formation_dir, '.keep'),
    common_config_path,
    common_secret_config_path,
    config_path,
    secret_config_path,
  )

  aws_config_default_path = File.expand_path('../platform/default_files/aws_config.yml.erb', __FILE__)
  if !File.directory?(aws_config_path) && !File.file?(aws_config_path)
    render_in_dir(aws_config_default_path, platform_root)
  end

  gitignore_path = File.join(platform_root, '.gitignore')
  gitignore_default_path = File.expand_path('../platform/default_files/.gitignore.erb', __FILE__)
  if !File.directory?(gitignore_path) && !File.file?(gitignore_path)
    render_in_dir(gitignore_default_path, platform_root)
  end

  nil
end
crontab_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 92
def crontab_dir
  @crontab_dir ||= File.join(config_dir, 'crontab')
end
deploy() click to toggle source
# File lib/comodule/deployment/platform.rb, line 65
def deploy
  download_secret_files
  @config = nil
  config_copy
  chown
  shell_script
  crontab
end
deployment?() click to toggle source
# File lib/comodule/deployment/platform.rb, line 149
def deployment?
  env && !env.empty? && env != :test && env != :development
end
deployment_mode() { || ... } click to toggle source
# File lib/comodule/deployment/platform.rb, line 139
def deployment_mode
  original, self.env = env, :deployment
  yield
  self.env = original
end
env() click to toggle source
# File lib/comodule/deployment/platform.rb, line 122
def env
  return @env if @env
  self.env = defined?(Rails) ? Rails.env : nil
end
env=(name) click to toggle source
# File lib/comodule/deployment/platform.rb, line 127
def env=(name)
  return if !name || name.empty?
  @env = name.to_sym
end
production?() click to toggle source
# File lib/comodule/deployment/platform.rb, line 145
def production?
  env && !env.empty? && env == :production
end
secret_crontab_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 96
def secret_crontab_dir
  @secret_crontab_dir ||= File.join(secret_config_dir, 'crontab')
end
secret_shell_script_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 113
def secret_shell_script_dir
  @secret_shell_script_dir ||= File.join(secret_config_dir, 'shell_script')
end
shell_script_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 109
def shell_script_dir
  @shell_script_dir ||= File.join(config_dir, 'shell_script')
end
test?() click to toggle source
# File lib/comodule/deployment/platform.rb, line 153
def test?
  !deployment?
end
test_cloud_formation_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 83
def test_cloud_formation_dir
  @test_cloud_formation_dir ||= be_dir(File.join(test_dir, 'cloud_formation'))
end
test_mode() { || ... } click to toggle source
# File lib/comodule/deployment/platform.rb, line 132
def test_mode
  original, self.env = env, :test
  result = yield
  self.env = original
  result
end
tmp_crontab_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 100
def tmp_crontab_dir
  @tmp_crontab_dir ||= be_dir(File.join(tmp_dir, 'crontab'))
end
tmp_shell_script_dir() click to toggle source
# File lib/comodule/deployment/platform.rb, line 117
def tmp_shell_script_dir
  @tmp_shell_script_dir ||= be_dir(File.join(tmp_dir, 'shell_script'))
end