dply 0.2.9 → 0.2.10

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: 9b94754956a775ca1df63d06773ea95a31b43164
4
- data.tar.gz: 13a8c55759e75314ebe495b5d0757956a3f0b37a
3
+ metadata.gz: c60a81b81642343a48a22ff3931e504c51dd3ec1
4
+ data.tar.gz: f679ecc74ae8843de5fb1e6f6fd17a4dd3abef71
5
5
  SHA512:
6
- metadata.gz: a7b8f2d51c35775798a8b11a9f7a403b6dfa251f4e1defe77fb4776e7ed45bc7601b1c391aee6b638d295241c22bea6bd89a4bae39cfce072f394ce83604ec7d
7
- data.tar.gz: f25433e4f12149ff3ac31357c1838309da4564794e640e596f1b4e7725d53879600bd0b1b4a3b46509cdf4a6d1406576529b9d922723458fb0e15d812f1077ca
6
+ metadata.gz: e61c97e9aac65f8f97e392bd145205f1e922b0b6cd7e21f8b74854ea154e02557b542c55b6949d54cb22133f2d115f3884455fb1dfae43a295481f30b65b0cc3
7
+ data.tar.gz: 58dd1abb7a93aa5cbb948d0a2599f215481a4cf03690da4448f3b21d2b67bfffa0bdce9a95a95db4ddebb85936e7ac0fdcb4d794407b24a0d9806b7f0a50e485
data/bin/drake CHANGED
@@ -73,13 +73,17 @@ begin
73
73
 
74
74
  command = (ARGV.shift || "").to_sym
75
75
  case command
76
- when :deploy, :reload, :task,
77
- :build, :depcheck, :"install-pkgs", :reopen_logs,
76
+ when :deploy, :task, :app_task,
77
+ :build, :depcheck, :"install-pkgs",
78
78
  :status, :devbuild, :setup
79
79
  run_cli command, ARGV
80
+ when :reload, :stop, :start, :reopen_logs
81
+ require 'dply/cli/ctl'
82
+ ctl = Dply::Cli::Ctl.new
83
+ ctl.run command
80
84
  when /\A[a-zA-Z_\-0-9]+[:][a-zA-Z_\-0-9]+\z/
81
85
  require 'dply/tasks'
82
- ::Dply::Tasks.new.rake command
86
+ ::Dply::Tasks.new.rake command.to_s
83
87
  when :''
84
88
  puts opts_parser
85
89
  else
data/dply.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
  spec.add_dependency "ruby-elf", "~> 1.0"
20
- spec.add_dependency "ruby-filemagic", "~> 0.6"
20
+ spec.add_dependency "ruby-filemagic", "~> 0.7"
21
21
 
22
22
  spec.add_development_dependency "bundler", "~> 1.6"
23
23
  spec.add_development_dependency "rake"
data/lib/dply/bundle.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'dply/helper'
2
2
  require 'fileutils'
3
3
  require 'yaml'
4
+ require 'shellwords'
4
5
 
5
6
  module Dply
6
7
  class Bundle
@@ -13,12 +14,11 @@ module Dply
13
14
  cmd "bundle install -j5 --deployment"
14
15
  end
15
16
 
16
- def rake(task, **args)
17
- if gemfile_exists?
18
- cmd "bundle exec rake -Nf dply/Rakefile -R dply #{task}", env: env
19
- else
20
- cmd "rake -Nf dply/Rakefile -R dply #{task}", env: env
21
- end
17
+ def rake(task)
18
+ rakelib = Shellwords.shellescape "#{__dir__}/rakelib"
19
+ rake_cmd = %(rake -R #{rakelib} -Nf dply/Rakefile #{task})
20
+ command = gemfile_exists? ? "bundle exec #{rake_cmd}" : rake_cmd
21
+ cmd command, env: env, display: false
22
22
  end
23
23
 
24
24
  def clean
@@ -39,7 +39,6 @@ module Dply
39
39
  end
40
40
  end
41
41
 
42
-
43
42
  def check
44
43
  system "bundle check > /dev/null"
45
44
  end
@@ -1,25 +1,28 @@
1
- require 'dply/logger'
1
+ require 'dply/helper'
2
2
  require 'dply/lock'
3
- require 'dply/strategy'
3
+ require 'dply/tasks'
4
4
  require 'dply/config'
5
5
 
6
6
  module Dply
7
7
  module Cli
8
- class Reload
8
+ class AppTask
9
9
 
10
- include Logger
10
+ include Helper
11
11
 
12
12
  def initialize(argv)
13
13
  @argv = argv
14
14
  end
15
15
 
16
16
  def run
17
+ task_name = @argv.shift
18
+ error "task name not specified" if not task_name
19
+ config
17
20
  lock.acquire
18
- strategy.reload
21
+ Dir.chdir("current") { tasks.app_task task_name }
19
22
  end
20
23
 
21
- def strategy
22
- @strategy ||= Strategy.load(config, {})
24
+ def tasks
25
+ @tasks ||= ::Dply::Tasks.new
23
26
  end
24
27
 
25
28
  def config
@@ -0,0 +1,40 @@
1
+ require 'dply/lock'
2
+ require 'dply/strategy'
3
+ require 'dply/config'
4
+ require 'dply/tasks'
5
+
6
+ module Dply
7
+ module Cli
8
+ class Ctl
9
+
10
+ def run(command)
11
+ case command
12
+ when :start, :stop, :reopen_logs
13
+ config
14
+ lock.acquire
15
+ Dir.chdir("current") { tasks.send command.to_sym }
16
+ when :reload
17
+ lock.acquire
18
+ strategy.reload
19
+ end
20
+ end
21
+
22
+ def strategy
23
+ @strategy ||= Strategy.load(config, {})
24
+ end
25
+
26
+ def config
27
+ @config ||= Config.new.to_struct
28
+ end
29
+
30
+ def lock
31
+ @lock ||= Lock.new
32
+ end
33
+
34
+ def tasks
35
+ @tasks ||= ::Dply::Tasks.new
36
+ end
37
+
38
+ end
39
+ end
40
+ end
data/lib/dply/helper.rb CHANGED
@@ -7,22 +7,28 @@ module Dply
7
7
  module Helper
8
8
 
9
9
  def cmd(command, display: true, error_msg: nil, return_output: false, env:{}, shell: false)
10
+ if command.is_a? Array
11
+ command_arr = command
12
+ command_str = command.join(" ")
13
+ else
14
+ command_arr = %W(#{command})
15
+ command_str = command
16
+ end
10
17
  stringify_values!(env)
11
18
  if display
12
- logger.bullet command
19
+ logger.bullet command_str
13
20
  else
14
- logger.debug command
21
+ logger.debug command_str
15
22
  end
16
- command_arr = command.split
17
- run_command = shell ? command : command_arr
18
23
 
24
+ run_command = shell ? command_str : command_arr
19
25
  output = if return_output
20
26
  IO.popen(env, run_command) { |f| f.read }
21
27
  else
22
28
  system(env, *run_command, 2 => 1)
23
29
  end
24
30
  return_value = $?.exitstatus
25
- error_msg ||= "non zero exit for \"#{command}\""
31
+ error_msg ||= "non zero exit for \"#{command_str}\""
26
32
  error error_msg if return_value != 0
27
33
  return output
28
34
  end
@@ -0,0 +1,33 @@
1
+ require_relative '../ext/string'
2
+
3
+ def load_app_rakefile
4
+ @app_rakefile_loaded ||= begin
5
+ load './Rakefile'
6
+ end
7
+ end
8
+
9
+ namespace :drake do
10
+ desc "task runner to optionally invoke tasks"
11
+ task :runner do
12
+ runner_tasks = ENV["runner_tasks"] || ""
13
+ optional = ENV["runner_optional"]
14
+ app_task = ENV["runner_app_task"]
15
+
16
+ load_app_rakefile if app_task
17
+ tasks = runner_tasks.split(',')
18
+ task = tasks.find { |i| Rake::Task.task_defined? i}
19
+
20
+ if task
21
+ puts "#{"\u2219".bold.yellow} #{task}"
22
+ Rake::Task[task].invoke
23
+ else
24
+ if optional
25
+ puts "#{"WARN".yellow} any of the tasks not found: #{tasks}"
26
+ else
27
+ abort "#{"ERROR".red} any of the required tasks not defined: #{tasks}"
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ Dir.glob('dply/*.rake').each { |r| load r}
data/lib/dply/rpm.rb CHANGED
@@ -22,8 +22,8 @@ module Dply
22
22
 
23
23
  def whatprovides(lib)
24
24
  lib = "#{lib}()(64bit)"
25
- command = %(rpm --queryformat "%{NAME} " -q --whatprovides "#{lib}")
26
- output = cmd command, return_output: true, shell: true, display: false
25
+ command = ["rpm", "--queryformat", "%{NAME} ", "-q", "--whatprovides", lib]
26
+ output = cmd command, return_output: true, display: false
27
27
  list = output.strip.split.select {|pkg| not filtered? pkg }
28
28
  end
29
29
 
@@ -40,7 +40,7 @@ module Dply
40
40
  previous_version = get_release
41
41
  release.make_current
42
42
  Dir.chdir current_dir do
43
- tasks.deploy target
43
+ tasks.deploy :archive
44
44
  end
45
45
  release.record_deployment
46
46
  current_version = get_release
@@ -52,7 +52,7 @@ module Dply
52
52
  download_configs if config_download_url
53
53
  Dir.chdir current_dir do
54
54
  link_all
55
- tasks.reload target
55
+ tasks.reload
56
56
  end
57
57
  end
58
58
 
@@ -100,15 +100,6 @@ module Dply
100
100
  end
101
101
  end
102
102
 
103
- def git_step
104
- return if options[:skip_git]
105
- if options[:no_pull]
106
- git.checkout branch
107
- else
108
- git.pull branch
109
- end
110
- end
111
-
112
103
  def link_all
113
104
  tasks.link "#{config.dir}/shared", dir_map
114
105
  tasks.link "#{config.dir}/config", config_map
@@ -32,7 +32,7 @@ module Dply
32
32
  current_version = git.commit_id
33
33
  link_all
34
34
  install_pkgs
35
- tasks.deploy target
35
+ tasks.deploy :git
36
36
  tasks.report_changes(previous_version, current_version)
37
37
  end
38
38
  end
@@ -41,7 +41,7 @@ module Dply
41
41
  download_configs if config_download_url
42
42
  Dir.chdir current_dir do
43
43
  link_all
44
- tasks.reload target
44
+ tasks.reload
45
45
  end
46
46
  end
47
47
 
data/lib/dply/tasks.rb CHANGED
@@ -10,29 +10,46 @@ module Dply
10
10
 
11
11
  include Helper
12
12
 
13
- def deploy(target)
13
+ def test(target, optional: false)
14
14
  bundle.install
15
- rake "#{target}:deploy"
15
+ rake_runner "app:test:#{target}", optional: optional
16
16
  end
17
17
 
18
- def reload(target)
18
+ def build(target)
19
+ task = target ? "app:build:#{target}" : "app:build"
19
20
  bundle.install
20
- rake "#{target}:reload"
21
+ bundle.clean
22
+ rake_runner task
21
23
  end
22
24
 
23
- def task(task)
25
+ def deploy(strategy, target: nil)
26
+ task = target ? "app:deploy:#{target}" : "app:deploy:#{strategy}"
24
27
  bundle.install
25
- rake task
28
+ rake_runner task
26
29
  end
27
30
 
28
- def build(task)
31
+ def reload
29
32
  bundle.install
30
- bundle.clean
31
- rake task
33
+ rake_runner "app:reload"
34
+ end
35
+
36
+ def stop
37
+ bundle.install
38
+ rake_runner "app:stop"
39
+ end
40
+
41
+ def app_task(task)
42
+ bundle.install
43
+ rake_runner task, app_task: true
44
+ end
45
+
46
+ def task(task)
47
+ bundle.install
48
+ rake_runner task
32
49
  end
33
50
 
34
51
  def rake(task)
35
- bundle.rake task
52
+ rake_runner task
36
53
  end
37
54
 
38
55
  def report_changes(previous_version, current_version)
@@ -64,6 +81,14 @@ module Dply
64
81
 
65
82
  private
66
83
 
84
+ def rake_runner(*tasks, optional: false, app_task: false)
85
+ runner_tasks = tasks.map(&:strip).join(",")
86
+ s = "drake:runner runner_tasks=#{runner_tasks}"
87
+ s << " runner_optional=true" if optional
88
+ s << " runner_app_task=true" if app_task
89
+ bundle.rake s
90
+ end
91
+
67
92
  def bundle
68
93
  @bundle ||= Bundle.new
69
94
  end
data/lib/dply/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dply
2
- VERSION = "0.2.9"
2
+ VERSION = "0.2.10"
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.2.9
4
+ version: 0.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neeraj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-04 00:00:00.000000000 Z
11
+ date: 2016-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-elf
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.6'
33
+ version: '0.7'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.6'
40
+ version: '0.7'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -95,13 +95,13 @@ files:
95
95
  - lib/dply/build.rb
96
96
  - lib/dply/build_config.rb
97
97
  - lib/dply/bundle.rb
98
+ - lib/dply/cli/app_task.rb
98
99
  - lib/dply/cli/build.rb
100
+ - lib/dply/cli/ctl.rb
99
101
  - lib/dply/cli/depcheck.rb
100
102
  - lib/dply/cli/deploy.rb
101
103
  - lib/dply/cli/devbuild.rb
102
104
  - lib/dply/cli/install_pkgs.rb
103
- - lib/dply/cli/reload.rb
104
- - lib/dply/cli/reopen_logs.rb
105
105
  - lib/dply/cli/setup.rb
106
106
  - lib/dply/cli/status.rb
107
107
  - lib/dply/cli/task.rb
@@ -120,6 +120,7 @@ files:
120
120
  - lib/dply/lock.rb
121
121
  - lib/dply/logger.rb
122
122
  - lib/dply/pkgs.rb
123
+ - lib/dply/rakelib/drake.rake
123
124
  - lib/dply/release.rb
124
125
  - lib/dply/release_helper.rb
125
126
  - lib/dply/repo.rb
@@ -170,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
171
  version: '0'
171
172
  requirements: []
172
173
  rubyforge_project:
173
- rubygems_version: 2.4.5.1
174
+ rubygems_version: 2.5.1
174
175
  signing_key:
175
176
  specification_version: 4
176
177
  summary: rake based deploy tool
@@ -1,35 +0,0 @@
1
- require 'dply/logger'
2
- require 'dply/lock'
3
- require 'dply/strategy'
4
- require 'dply/config'
5
-
6
- module Dply
7
- module Cli
8
- class ReopenLogs
9
-
10
- include Logger
11
-
12
- def initialize(argv)
13
- @argv = argv
14
- end
15
-
16
- def run
17
- lock.acquire
18
- strategy.reopen_logs
19
- end
20
-
21
- def strategy
22
- @strategy ||= Strategy.load(config, {})
23
- end
24
-
25
- def config
26
- @config ||= Config.new.to_struct
27
- end
28
-
29
- def lock
30
- @lock ||= Lock.new
31
- end
32
-
33
- end
34
- end
35
- end