Class: DeployKit
- Inherits:
-
Object
show all
- Defined in:
- lib/deploy_kit/deploy_kit.rb
Instance Method Summary
collapse
Constructor Details
Returns a new instance of DeployKit.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/deploy_kit/deploy_kit.rb', line 4
def initialize
db_conf = YAML.load_file(File.join(RAILS_ROOT, 'config', 'database.yml'))
@db_conf = db_conf[RAILS_ENV].symbolize_keys
raw_config = File.read(File.join(RAILS_ROOT, 'config', 'deploy_kit.yml'))
erb_config = ERB.new(raw_config).result
fu_conf = YAML.load(erb_config)
@fu_conf = fu_conf[RAILS_ENV].symbolize_keys
@s3_conf = YAML.load_file(File.join(RAILS_ROOT, 'config', 'amazon_s3.yml'))[RAILS_ENV].symbolize_keys
@fu_conf[:s3_bucket] ||= @s3_conf[:bucket_name]
@fu_conf[:aws_access_key_id] ||= @s3_conf[:access_key_id]
@fu_conf[:aws_secret_access_key] ||= @s3_conf[:secret_access_key]
@fu_conf[:mysqldump_options] ||= '--complete-insert --skip-extended-insert'
@verbose = !@fu_conf[:verbose].nil?
@fu_conf[:keep_files] ||= 5
check_conf
create_dirs
end
|
Instance Method Details
#backup(store) ⇒ Object
58
59
60
|
# File 'lib/deploy_kit/deploy_kit.rb', line 58
def backup(store)
raise 'Called abstract method: backup'
end
|
#backup_path ⇒ Object
54
55
56
|
# File 'lib/deploy_kit/deploy_kit.rb', line 54
def backup_path
@fu_conf[:dump_base_path] || File.join(RAILS_ROOT, 'backup')
end
|
#check_conf ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/deploy_kit/deploy_kit.rb', line 25
def check_conf
@fu_conf[:s3_bucket] = ENV['s3_bucket'] unless ENV['s3_bucket'].blank?
if @fu_conf[:app_name] == 'replace_me'
raise DeployKitConfigError, 'Application name (app_name) key not set in config/deploy_kit.yml.'
elsif @fu_conf[:s3_bucket] == 'some-s3-bucket'
raise DeployKitConfigError, 'S3 bucket (s3_bucket) not set in config/deploy_kit.yml. This bucket must be created using an external S3 tool like S3 Browser for OS X, or JetS3t (Java-based, cross-platform).'
else
if ENV.keys.include?('AMAZON_ACCESS_KEY_ID') && ENV.keys.include?('AMAZON_SECRET_ACCESS_KEY')
@fu_conf[:aws_access_key_id] = ENV['AMAZON_ACCESS_KEY_ID']
@fu_conf[:aws_secret_access_key] = ENV['AMAZON_SECRET_ACCESS_KEY']
elsif @fu_conf[:aws_access_key_id].blank? || @fu_conf[:aws_access_key_id].include?('--replace me') || @fu_conf[:aws_secret_access_key].include?('--replace me')
raise DeployKitConfigError, 'AWS Access Key Id or AWS Secret Key not set in config/deploy_kit.yml.'
end
end
end
|
#cmd ⇒ Object
62
63
64
|
# File 'lib/deploy_kit/deploy_kit.rb', line 62
def cmd
raise 'Called abstract method: cmd'
end
|
#create_dirs ⇒ Object
46
47
48
|
# File 'lib/deploy_kit/deploy_kit.rb', line 46
def create_dirs
ensure_directory_exists(backup_path)
end
|
#ensure_directory_exists(dir) ⇒ Object
50
51
52
|
# File 'lib/deploy_kit/deploy_kit.rb', line 50
def ensure_directory_exists(dir)
FileUtils.mkdir_p(dir) unless File.exist?(dir)
end
|
#final_filename ⇒ Object
66
67
68
|
# File 'lib/deploy_kit/deploy_kit.rb', line 66
def final_filename
raise 'Called abstract method: final_filename'
end
|
#timestamp ⇒ Object
42
43
44
|
# File 'lib/deploy_kit/deploy_kit.rb', line 42
def timestamp
@timestamp ||= Time.now.strftime("%Y-%m-%d_%H%M%S")
end
|