dply 0.0.2 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b85a4c3a9c6317f7eb0c58b3f6e2ba5126015fb6
4
- data.tar.gz: 0b8fb6959886ba99125fe7559510dd54180c92a1
3
+ metadata.gz: b6a7c74b1b9d89269d2b64c1a023c52a01d6f69a
4
+ data.tar.gz: a4cd0427ab1c9609a03e628e880d9877fd80bc9f
5
5
  SHA512:
6
- metadata.gz: dae899e3f733399352bd7ac25ba0c473e56b8fb166fba1b9478e4461393752c0dcbc8266c43ce2c6bacc6573399f53240fecd3ca8670e824f1c3fcd6068a18c8
7
- data.tar.gz: e21cf728a5340e980e98db23705c9d36a4382dd0e431841715931cfc60c4e6176787bf70660f68a4cfb8b1297e50a273815a503de9c7de64163eb50892f24469
6
+ metadata.gz: bfd678b1482e99e440dfa89edbcde8d533b3f3883f190e05a63f29d5e61f5be3f571f495924b59856e9d4c6c52a670f22c48a3ef5a78d648911960e620f73f5a
7
+ data.tar.gz: dcfdee4e48b8b322b0dec930765a1f4be090cec5ef7b8e1714ac8de995a6203db1ed8c91fe25db68d3aec8bd7e43ac5b2df3aabb9e2aa4bf4399efbfae47ed16
data/.gitignore CHANGED
@@ -28,7 +28,7 @@ mkmf.log
28
28
  /test/tmp/
29
29
  /test/version_tmp/
30
30
  /tmp/
31
-
31
+ *.swp
32
32
  ## Specific to RubyMotion:
33
33
  .dat*
34
34
  .repl_history
data/bin/drake CHANGED
@@ -8,10 +8,13 @@ require 'optparse'
8
8
  require 'dply/error'
9
9
  require 'dply/version'
10
10
  require 'dply/logger'
11
+ require 'dply/config'
11
12
  require 'pathname'
12
13
 
13
14
  logger = ::Dply::Logger.logger
14
- options = {}
15
+ options = {
16
+ read_config: true
17
+ }
15
18
 
16
19
  opts_parser = OptionParser.new do |opts|
17
20
 
@@ -29,7 +32,11 @@ opts_parser = OptionParser.new do |opts|
29
32
  path = Pathname.new(d)
30
33
  raise ::Dply::Error, "deploy_dir path must be absolute" if path.relative?
31
34
  options[:deploy_dir] = path
32
- end
35
+ end
36
+
37
+ opts.on("--no-config", "Do not read config file") do
38
+ options[:read_config] = false
39
+ end
33
40
 
34
41
  opts.on("-v", "--version", "Show version") do |v|
35
42
  puts ::Dply::VERSION
@@ -57,12 +64,17 @@ begin
57
64
  opts_parser.order!(ARGV)
58
65
  deploy_dir = options[:deploy_dir] || Dir.pwd
59
66
  Dir.chdir deploy_dir
67
+ config = Dply::Config.new(deploy_dir, read_config: options[:read_config]).to_struct
60
68
 
61
69
  command = (ARGV.shift || "").to_sym
62
70
  case command
63
71
  when :deploy
64
72
  require 'dply/cli/deploy'
65
- cli = Dply::Cli::Deploy.new(deploy_dir, ARGV)
73
+ cli = Dply::Cli::Deploy.new(deploy_dir, config, ARGV)
74
+ cli.run
75
+ when :reload
76
+ require 'dply/cli/reload'
77
+ cli = Dply::Cli::Reload.new(deploy_dir, config, ARGV)
66
78
  cli.run
67
79
  when :''
68
80
  puts opts_parser
@@ -0,0 +1,38 @@
1
+ directory structure when app is deployed using dplyr:
2
+
3
+ /srv/app_user/app/
4
+ ├── config
5
+ │   └── database.yml
6
+ ├── current -> repo
7
+ ├── dply.rb
8
+ ├── shared
9
+ │   ├── log
10
+ │   ├── public
11
+ │   │   └── assets
12
+ │   └── tmp
13
+ │   ├── pids
14
+ │   └── sockets
15
+ ├── repo
16
+ │   ├── app
17
+ │   ├── config
18
+ │   │   └── database.yml -> ../../config/database.yml
19
+ │   ├── config.ru
20
+ │   ├── db
21
+ | ├── dply
22
+ │   ├── Gemfile
23
+ │   ├── Gemfile.lock
24
+ │   ├── lib
25
+ │   ├── log -> ../shared/log
26
+ │   ├── public
27
+ │   │   ├── assets -> ../../shared/public/assets
28
+ │   ├── Rakefile
29
+ │   ├── README.md
30
+ │   ├── README.rdoc
31
+ │   ├── tmp -> ../shared/tmp
32
+ ├── shared
33
+ │   ├── log
34
+ │   ├── public
35
+ │   │   └── assets
36
+ │   └── tmp
37
+ │   ├── pids
38
+ │   └── sockets
@@ -0,0 +1,23 @@
1
+ repo "git@github.com:user/repo.git"
2
+ strategy :git
3
+ target :production
4
+ #create directories in shared/ dir
5
+ shared_dirs [
6
+ "public/assets"
7
+ ]
8
+
9
+ # target(relative to repo root) => source(relative to shared/ dir)
10
+ dir_map ({
11
+ "log" => "log",
12
+ "tmp" => "tmp",
13
+ "public/assets" => "public/assets"
14
+ })
15
+
16
+ # target(relative to repo root) => source(relative to config/ dir)
17
+ config_map ({
18
+ "config/database.yml" => "database.yml",
19
+ "config/some_config" => "some_config"
20
+ })
21
+
22
+ config_download_url "http://127.0.0.1/prefix"
23
+ config_skip_download ["some_config"]
@@ -0,0 +1,8 @@
1
+ stage :production do
2
+ user "dev"
3
+ ask :user # exported to env as DPLY_USER
4
+ deploy_dir "/home/dev/project"
5
+ parallel_runs 1
6
+ host "10.1.1.1", deploy_dir: "/home/dev/project1", id: "project1", user: "dev1"
7
+ host "10.1.1.2", deploy_dir: "/home/dev/project2", id: "project2"
8
+ end
@@ -8,10 +8,11 @@ module Dply
8
8
 
9
9
  include Logger
10
10
 
11
- attr_reader :deploy_dir, :argv
11
+ attr_reader :deploy_dir, :argv, :config
12
12
 
13
- def initialize(deploy_dir, argv)
13
+ def initialize(deploy_dir, config, argv)
14
14
  @deploy_dir = deploy_dir
15
+ @config = config
15
16
  @argv = argv
16
17
  end
17
18
 
@@ -19,13 +20,13 @@ module Dply
19
20
  lock.acquire
20
21
  opts.parse!(argv)
21
22
  target = argv.shift
22
- deploy.config.target = target if target
23
+ config.target = target if target
23
24
  deploy.options = options
24
25
  deploy.run
25
26
  end
26
27
 
27
28
  def deploy
28
- @deploy ||= ::Dply::Deploy.new(deploy_dir)
29
+ @deploy ||= ::Dply::Deploy.new(deploy_dir, config)
29
30
  end
30
31
 
31
32
  def lock
@@ -0,0 +1,58 @@
1
+ require 'dply/reload'
2
+ require 'dply/logger'
3
+ require 'dply/lock'
4
+
5
+ module Dply
6
+ module Cli
7
+ class Reload
8
+
9
+ include Logger
10
+
11
+ attr_reader :deploy_dir, :argv, :config
12
+
13
+ def initialize(deploy_dir, config, argv)
14
+ @deploy_dir = deploy_dir
15
+ @argv = argv
16
+ @config = config
17
+ end
18
+
19
+ def run
20
+ lock.acquire
21
+ opts.parse!(argv)
22
+ target = argv.shift
23
+ config.target = target if target
24
+ reload.options = options
25
+ reload.run
26
+ end
27
+
28
+ def reload
29
+ @reload ||= ::Dply::Reload.new(deploy_dir, config)
30
+ end
31
+
32
+ def lock
33
+ @lock ||= ::Dply::Lock.new(deploy_dir)
34
+ end
35
+
36
+ def opts
37
+ OptionParser.new do |opts|
38
+
39
+ opts.banner = "Usage: dply reload [options] [target]"
40
+
41
+ opts.on("--skip-bundler", "Skip bundle install") do |e|
42
+ options[:skip_bundler] = true
43
+ end
44
+
45
+ opts.on("-h", "--help", "Help") do
46
+ puts opts
47
+ exit
48
+ end
49
+ end
50
+ end
51
+
52
+ def options
53
+ @options ||= {}
54
+ end
55
+
56
+ end
57
+ end
58
+ end
@@ -5,11 +5,11 @@ module Dply
5
5
  class Config
6
6
 
7
7
  include Helper
8
- attr_reader :deploy_dir, :config_file_required
8
+ attr_reader :deploy_dir, :read_config
9
9
 
10
- def initialize(deploy_dir, config_file_required: true)
10
+ def initialize(deploy_dir, read_config: true)
11
11
  @deploy_dir = deploy_dir
12
- @config_file_required = config_file_required
12
+ @read_config = read_config
13
13
  end
14
14
 
15
15
  def config
@@ -24,9 +24,11 @@ module Dply
24
24
  link_config: false,
25
25
  config_map: nil,
26
26
  dir_map: nil,
27
- shared_dirs: []
27
+ shared_dirs: [],
28
+ config_skip_download: [],
29
+ config_download_url: nil
28
30
  }
29
- read_from_file
31
+ read_from_file if read_config
30
32
  return @config
31
33
  end
32
34
 
@@ -55,6 +57,16 @@ module Dply
55
57
  set :config_map, map
56
58
  end
57
59
 
60
+ def config_skip_download(list)
61
+ set :config_skip_download, list
62
+ end
63
+
64
+ def config_download_url(url)
65
+ set :config_download_url, url
66
+ end
67
+
68
+
69
+
58
70
  def dir_map(map)
59
71
  set :dir_map, map
60
72
  end
@@ -90,7 +102,7 @@ module Dply
90
102
 
91
103
  def read_from_file
92
104
  if not File.readable? config_file
93
- raise error "dply.rb not found in #{deploy_dir}" if config_file_required
105
+ raise error "dply.rb not found in #{deploy_dir}"
94
106
  return
95
107
  end
96
108
  instance_eval(File.read(config_file))
@@ -0,0 +1,35 @@
1
+ require 'dply/helper'
2
+ module Dply
3
+ class ConfigDownloader
4
+
5
+ include Helper
6
+ attr_accessor :base_url, :config_files, :config_skip_download
7
+
8
+ def initialize(config_files , base_url, secret: nil, config_skip_download: [])
9
+ @config_files = config_files
10
+ @base_url = base_url
11
+ @secret = secret
12
+ @config_skip_download = config_skip_download
13
+ end
14
+
15
+ def download_all
16
+ config_files.each do |f|
17
+ if config_skip_download.include? f
18
+ logger.debug "skipping to download file #{f}"
19
+ next
20
+ end
21
+ download f
22
+ end
23
+ end
24
+
25
+ def download(file)
26
+ url = "#{base_url}/#{file}"
27
+ logger.bullet "downloading #{file}"
28
+ http_status = `curl -w "%{http_code}" -f -s -o 'config/#{file}' '#{url}' `
29
+ if http_status != "200"
30
+ raise error "failed to download #{file}, http status #{http_status}"
31
+ end
32
+ end
33
+
34
+ end
35
+ end
@@ -1,25 +1,21 @@
1
- require 'dply/setup'
2
1
  require 'dply/strategy'
3
2
  require 'dply/config'
4
3
 
5
4
  module Dply
6
5
  class Deploy
7
6
 
8
- attr_reader :deploy_dir
7
+ attr_reader :deploy_dir, :config
9
8
  attr_writer :options
10
9
 
11
- def initialize(deploy_dir)
10
+ def initialize(deploy_dir, config)
12
11
  @deploy_dir = deploy_dir
12
+ @config = config
13
13
  end
14
14
 
15
15
  def run
16
16
  strategy.deploy
17
17
  end
18
18
 
19
- def config
20
- @config ||= Config.new(deploy_dir).to_struct
21
- end
22
-
23
19
  def strategy
24
20
  @strategy ||= Strategy.load(config, options)
25
21
  end
@@ -1,8 +1,12 @@
1
1
  require 'dply/stages_config'
2
2
  require 'dply/remote_task'
3
+ require 'dply/logger'
4
+
3
5
  module Dply
4
6
  class Dplyr
5
7
 
8
+ include Logger
9
+
6
10
  attr_reader :stage, :argv
7
11
  def initialize(stage, argv)
8
12
  @stage = stage
@@ -10,11 +14,14 @@ module Dply
10
14
  end
11
15
 
12
16
  def run
17
+ global_switches = []
18
+ global_switches << "--debug" if logger.debug?
13
19
  case stage
14
20
  when 'dev'
15
- system "drake #{argv_str}"
21
+ global_switches << "--no-config"
22
+ system "drake #{global_switches.join(" ")} #{argv_str}"
16
23
  when 'local'
17
- system "drake #{argv_str}"
24
+ system "drake #{global_switches.join(" ")} #{argv_str}"
18
25
  else
19
26
  run_remote_task
20
27
  end
@@ -32,12 +39,20 @@ module Dply
32
39
  stage_data[:parallel_runs]
33
40
  end
34
41
 
42
+ def env_str
43
+ str = ""
44
+ stage_data[:env].each do |k,v|
45
+ str << %(DPLY_#{k.upcase}="#{v}" )
46
+ end
47
+ str
48
+ end
49
+
35
50
  def argv_str
36
51
  @argv_str ||= argv.join(' ')
37
52
  end
38
53
 
39
54
  def run_remote_task
40
- remote_task = ::Dply::RemoteTask.new(hosts, argv_str, parallel_jobs: parallel_jobs)
55
+ remote_task = ::Dply::RemoteTask.new(hosts, argv_str, parallel_jobs: parallel_jobs, env: env_str)
41
56
  remote_task.run
42
57
  end
43
58
 
@@ -39,5 +39,11 @@ module Dply
39
39
  remote_url.chomp
40
40
  end
41
41
 
42
+ def self.commit_id
43
+ commit_id = cmd "git rev-parse HEAD", return_output: true, display: false
44
+ logger.debug commit_id.chomp
45
+ commit_id.chomp
46
+ end
47
+
42
48
  end
43
49
  end
@@ -4,52 +4,36 @@ module Dply
4
4
 
5
5
  include Helper
6
6
 
7
- attr_reader :src_dir, :dest_dir, :map, :dir_prefix
7
+ attr_reader :src_dir, :dest_dir, :map
8
8
 
9
- def initialize(src_dir, dest_dir, map: nil, dir_prefix: nil)
9
+ def initialize(src_dir, dest_dir, map: {})
10
10
  verify_absolute src_dir, dest_dir
11
11
  @src_dir = src_dir
12
12
  @dest_dir = dest_dir
13
13
  @map = map
14
- @dir_prefix = dir_prefix
15
14
  end
16
15
 
17
16
  def create_symlinks
18
- files.each do |f|
19
- link_target = link_target(f)
20
- absolute_source_path = absolute_source_path(f)
21
- relative_path = absolute_source_path.relative_path_from link_target.parent
22
- logger.debug "linking #{link_target} -> #{absolute_source_path}"
23
- symlink(relative_path, link_target)
17
+ mapped_files.each do |f|
18
+ target = link_target(f)
19
+ source = link_source(f)
20
+ relative_source = link_relative_source(source, target)
21
+ logger.debug "linking #{target} -> #{source}"
22
+ symlink(relative_source, target)
24
23
  end
25
24
  end
26
25
 
27
- def files
28
- @map ? mapped_files : all_files
26
+ def link_target(relative_target)
27
+ Pathname.new "#{dest_dir}/#{relative_target}"
29
28
  end
30
29
 
31
- def map
32
- @map || default_map
30
+ def link_source(relative_target)
31
+ relative_source = map[relative_target]
32
+ Pathname.new "#{src_dir}/#{relative_source}"
33
33
  end
34
34
 
35
- def link_target(relative_source)
36
- target = map[relative_source]
37
- Pathname.new "#{dest_dir}/#{target}"
38
- end
39
-
40
- def absolute_source_path(src)
41
- Pathname.new "#{src_dir}/#{src}"
42
- end
43
-
44
-
45
- def default_map
46
- @h ||= Hash.new do |hash, key|
47
- dir_prefix ? "#{dir_prefix}/#{key}" : "#{key}"
48
- end
49
- end
50
-
51
- def all_files
52
- Dir.chdir(src_dir) { Dir.glob("*") }
35
+ def link_relative_source(source, target)
36
+ source.relative_path_from target.parent
53
37
  end
54
38
 
55
39
  def mapped_files
@@ -0,0 +1,29 @@
1
+ require 'dply/strategy'
2
+ require 'dply/config'
3
+
4
+ module Dply
5
+ class Reload
6
+
7
+ attr_reader :deploy_dir, :config
8
+ attr_writer :options
9
+
10
+ def initialize(deploy_dir, config)
11
+ @deploy_dir = deploy_dir
12
+ @config = config
13
+ end
14
+
15
+ def run
16
+ strategy.reload
17
+ end
18
+
19
+ def strategy
20
+ @strategy ||= Strategy.load(config, options)
21
+ end
22
+
23
+ def options
24
+ @options ||= {}
25
+ end
26
+
27
+
28
+ end
29
+ end
@@ -7,12 +7,13 @@ module Dply
7
7
 
8
8
  include Logger
9
9
 
10
- attr_reader :hosts, :parallel_jobs, :task
10
+ attr_reader :hosts, :parallel_jobs, :task, :env
11
11
 
12
- def initialize(hosts, task, parallel_jobs: 1)
12
+ def initialize(hosts, task, parallel_jobs: 1, env: "")
13
13
  @hosts = hosts
14
14
  @parallel_jobs = parallel_jobs
15
15
  @task = task
16
+ @env = env
16
17
  end
17
18
 
18
19
  def run
@@ -78,9 +79,9 @@ module Dply
78
79
  host = host_info[:host]
79
80
  deploy_dir = host_info[:deploy_dir]
80
81
  if logger.debug?
81
- %(ssh -tt -oBatchMode=yes -l #{user} #{host} "drake --debug -d #{deploy_dir} #{task} 2>&1")
82
+ %(ssh -tt -oBatchMode=yes -l #{user} #{host} "#{env} drake --debug -d #{deploy_dir} #{task} 2>&1")
82
83
  else
83
- %(ssh -tt -oBatchMode=yes -l #{user} #{host} "drake -d #{deploy_dir} #{task} 2>&1" 2>/dev/null)
84
+ %(ssh -tt -oBatchMode=yes -l #{user} #{host} "#{env} drake -d #{deploy_dir} #{task} 2>&1" 2>/dev/null)
84
85
  end
85
86
  end
86
87
 
@@ -5,17 +5,18 @@ module Dply
5
5
 
6
6
  include Logger
7
7
 
8
- def cmd(command, display: true, error_msg: nil, return_output: false)
8
+ def cmd(command, display: true, error_msg: nil, return_output: false, env:{})
9
+ stringify_values(env)
9
10
  if display
10
11
  puts "#{"\u2219".bold.blue} #{command}"
11
12
  else
12
13
  logger.debug command
13
14
  end
14
15
  if return_output
15
- output = `#{command}`
16
+ output = `#{env_str(env)} #{command}`
16
17
  else
17
18
  output = ""
18
- system "#{command} 2>&1"
19
+ system env, "#{command} 2>&1"
19
20
  end
20
21
  return_value = $?.exitstatus
21
22
  error_msg ||= "non zero exit for \"#{command}\""
@@ -43,5 +44,19 @@ module Dply
43
44
  symlink src, dst
44
45
  end
45
46
 
47
+ def env_str(env)
48
+ str = ""
49
+ env.each do |k,v|
50
+ str << %(#{k}="#{v.to_s}")
51
+ end
52
+ str
53
+ end
54
+
55
+ def stringify_values(hash)
56
+ hash.each do |k,v|
57
+ hash[k] = v.to_s
58
+ end
59
+ end
60
+
46
61
  end
47
62
  end
@@ -35,7 +35,7 @@ module Dply
35
35
  host: host,
36
36
  user: user || get_from_current_stage(:user),
37
37
  deploy_dir: deploy_dir || get_from_current_stage(:deploy_dir),
38
- id: id || "unnamed"
38
+ id: id || host
39
39
  }
40
40
  hosts << host_info
41
41
  end
@@ -72,10 +72,19 @@ module Dply
72
72
  end
73
73
  end
74
74
 
75
+ def ask(key)
76
+ print "Enter #{key}: "
77
+ value = STDIN.gets.chomp
78
+ env = get_from_current_stage(:env)
79
+ env[key] = value
80
+ end
81
+
75
82
  def init_stage(name)
76
- stages[name] = {}
77
- stages[name][:hosts] = []
78
- stages[name][:parallel_runs] = 1
83
+ stages[name] = {
84
+ hosts: [],
85
+ parallel_runs: 1,
86
+ env: {}
87
+ }
79
88
  end
80
89
 
81
90
 
@@ -26,6 +26,13 @@ module Dply
26
26
 
27
27
  end
28
28
 
29
+ def reload
30
+ Dir.chdir deploy_dir do
31
+ git_step
32
+ tasks.reload config.target
33
+ end
34
+ end
35
+
29
36
  private
30
37
 
31
38
  def deploy_dir
@@ -1,6 +1,7 @@
1
1
  require 'dply/helper'
2
2
  require 'dply/setup'
3
3
  require 'dply/linker'
4
+ require 'dply/config_downloader'
4
5
  require 'forwardable'
5
6
 
6
7
 
@@ -12,7 +13,9 @@ module Dply
12
13
  include Helper
13
14
 
14
15
  def_delegators :config, :target, :branch, :link_config,
15
- :config_dir, :config_map, :dir_map
16
+ :config_dir, :config_map, :dir_map, :config_skip_download,
17
+ :config_download_url
18
+
16
19
 
17
20
  attr_reader :config, :options
18
21
 
@@ -23,17 +26,31 @@ module Dply
23
26
 
24
27
  def deploy
25
28
  setup.run
29
+ config_downloader.download_all if config_download_url
26
30
  Dir.chdir current_dir do
31
+ previous_version = git.commit_id
27
32
  git_step
33
+ current_version = git.commit_id
28
34
  link_dirs
29
35
  link_config_files
30
- tasks.deploy target
36
+ env = {
37
+ "DPLY_PREVIOUS_VERSION" => previous_version,
38
+ "DPLY_CURRENT_VERSION" => current_version
39
+ }
40
+ tasks.deploy target, env: env
31
41
  end
32
42
  end
33
43
 
34
44
  def switch
35
45
  end
36
46
 
47
+ def reload
48
+ config_downloader.download_all if config_download_url
49
+ Dir.chdir current_dir do
50
+ tasks.reload target
51
+ end
52
+ end
53
+
37
54
  private
38
55
 
39
56
  def current_dir
@@ -63,10 +80,13 @@ module Dply
63
80
 
64
81
  def config_linker
65
82
  return @config_linker if @config_linker
66
- dir_prefix = config_dir || "config"
67
83
  source = "#{config.deploy_dir}/config"
68
84
  dest = current_dir
69
- @config_linker ||= ::Dply::Linker.new(source, dest, map: config_map, dir_prefix: dir_prefix)
85
+ @config_linker ||= ::Dply::Linker.new(source, dest, map: config_map)
86
+ end
87
+
88
+ def config_downloader
89
+ @config_downloader = ::Dply::ConfigDownloader.new(config_map.values.uniq, config_download_url, config_skip_download: config_skip_download)
70
90
  end
71
91
 
72
92
  def dir_linker
@@ -4,14 +4,21 @@ module Dply
4
4
 
5
5
  include Shell
6
6
 
7
- def deploy(target)
7
+ def deploy(target, env:{})
8
+ env.merge!(env_from_yml)
8
9
  bundle_install
9
- cmd "#{rake_command} #{target}:deploy"
10
+ cmd "#{rake_command} #{target}:deploy", env: env
10
11
  end
11
12
 
12
- def switch(target)
13
+ def switch(target, env:{})
14
+ env.merge!(env_from_yml)
13
15
  bundle_install
14
- cmd "#{rake_command} #{target}:switch"
16
+ cmd "#{rake_command} #{target}:switch", env: env
17
+ end
18
+
19
+ def reload(target)
20
+ bundle_install
21
+ cmd "#{rake_command} #{target}:reload", env: env_from_yml
15
22
  end
16
23
 
17
24
  def gemfile_exists?
@@ -33,5 +40,16 @@ module Dply
33
40
  cmd "bundle install"
34
41
  end
35
42
 
43
+ def env_from_yml
44
+ path = "config/env.yml"
45
+ if not File.readable? path
46
+ logger.debug "skipped loading env from #{path}"
47
+ return {}
48
+ end
49
+ require 'yaml'
50
+ YAML.load_file(path)
51
+ end
52
+
53
+
36
54
  end
37
55
  end
@@ -1,3 +1,3 @@
1
1
  module Dply
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dply
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neeraj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-07 00:00:00.000000000 Z
11
+ date: 2014-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -55,10 +55,15 @@ files:
55
55
  - bin/drake
56
56
  - code_dump/alt_remote_task.rb
57
57
  - code_dump/old_remote_task.rb
58
+ - docs/README
59
+ - docs/dply.rb
60
+ - docs/stages.rb
58
61
  - dply.gemspec
59
62
  - lib/dply.rb
60
63
  - lib/dply/cli/deploy.rb
64
+ - lib/dply/cli/reload.rb
61
65
  - lib/dply/config.rb
66
+ - lib/dply/config_downloader.rb
62
67
  - lib/dply/custom_logger.rb
63
68
  - lib/dply/deploy.rb
64
69
  - lib/dply/dplyr.rb
@@ -70,6 +75,7 @@ files:
70
75
  - lib/dply/lock.rb
71
76
  - lib/dply/logger.rb
72
77
  - lib/dply/release.rb
78
+ - lib/dply/reload.rb
73
79
  - lib/dply/remote_task.rb
74
80
  - lib/dply/repo.rb
75
81
  - lib/dply/report.rb