webistrano_cli 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- webistrano_cli (0.0.1)
4
+ webistrano_cli (0.0.2)
5
5
  activeresource (< 3.1.0)
6
6
  highline
7
7
  mechanize
data/bin/webistrano_cli CHANGED
@@ -9,7 +9,9 @@ require 'slop'
9
9
  require 'webistrano_cli'
10
10
 
11
11
  # parse assumes ARGV, otherwise you can pass it your own Array
12
- opts = Slop.parse :help => true do
12
+ opts = Slop.new :help => true do
13
+ banner 'Usage: webistrano_cli -p project_name'
14
+ description 'command allow to deploy projects from webistrano'
13
15
  on :p, :project, 'Project name', true
14
16
  on :s, :stage, 'Stage', true
15
17
  on :t, :task, 'Task', true
@@ -17,5 +19,9 @@ opts = Slop.parse :help => true do
17
19
  puts 'Version 0.0.1'
18
20
  end
19
21
  end
20
-
21
- opts.p? ? WebistranoCli.deploy(opts.to_hash) : puts(opts.help)
22
+ begin
23
+ opts.parse
24
+ opts.p? ? WebistranoCli.deploy(opts.to_hash) : (puts(opts.help) unless opts.v?)
25
+ rescue Slop::Error => ex
26
+ puts ex.message
27
+ end
@@ -1,29 +1,20 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'highline/import'
3
3
  require 'webistrano_cli/version'
4
+ require 'webistrano_cli/config'
4
5
  require 'webistrano_cli/task'
5
6
 
6
7
  module WebistranoCli
7
8
  class << self
8
9
  def deploy opts = {}
9
- project = opts[:project]
10
- stage = opts[:stage] || 'staging'
11
- task = opts[:task] || 'deploy:migrations'
12
-
13
- config = {}
14
-
15
- [:site, :user,:password].each do |field|
16
- config[field] = ENV["WCLI_#{field.upcase}"]
17
- next if config[field]
18
- config[field] = ask("webistrano #{field}: ") do |q|
19
- q.whitespace = :strip_and_collapse
20
- q.validate = lambda { |p| p.length > 0 }
21
- q.responses[:not_valid] = "can't be blank!"
22
- end
23
- end
24
-
25
- [Project, Stage, Deployment].each { |model| model.configure(config) }
26
- Task.new(project, stage, task).run
10
+ config = Config.new
11
+ config_hash = Config.new.get
12
+ [Project, Stage, Deployment].each { |model| model.configure(config_hash) }
13
+ Task.new(
14
+ opts[:project],
15
+ config.stage(opts[:stage]),
16
+ config.task(opts[:task])
17
+ ).run
27
18
  end
28
19
  end
29
20
  end
@@ -0,0 +1,54 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'yaml'
3
+ module WebistranoCli
4
+ class Config
5
+
6
+ def initialize
7
+ @file_path = File.expand_path('~/.webistrano_cli.yml')
8
+ if File.exists?(@file_path)
9
+ @config = YAML.load_file(@file_path) rescue nil
10
+ else
11
+ @config = nil
12
+ end
13
+ end
14
+
15
+ def get
16
+ config = {}
17
+
18
+ [:site, :user,:password].each do |field|
19
+ config[field] = ENV["WCLI_#{field.to_s.upcase}"] || (@config['webistrano_cli'][field.to_s] rescue nil)
20
+ next if config[field]
21
+ config[field] = ask("webistrano #{field}: ") do |q|
22
+ q.whitespace = :strip_and_collapse
23
+ q.validate = lambda { |p| p.length > 0 }
24
+ q.responses[:not_valid] = "can't be blank!"
25
+ end
26
+ end
27
+
28
+ File.open(@file_path, 'w') do |f|
29
+ obj = {
30
+ 'webistrano_cli' => {
31
+ 'site' => config[:site],
32
+ 'user' => config[:user],
33
+ 'password' => config[:password],
34
+ 'defaults' => {
35
+ 'stage' => 'staging',
36
+ 'task' => 'deploy:migrations'
37
+ }
38
+ }
39
+ }
40
+ YAML.dump obj, f
41
+ end unless File.exists?(@file_path)
42
+ config
43
+ end
44
+
45
+ def stage opt
46
+ opt || (@config['webistrano_cli']['defaults']['stage'] rescue nil) || 'staging'
47
+ end
48
+
49
+ def task opt
50
+ opt || (@config['webistrano_cli']['defaults']['task'] rescue nil) || 'deploy:migrations'
51
+ end
52
+
53
+ end
54
+ end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  module WebistranoCli
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webistrano_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-01 00:00:00.000000000 +02:00
12
+ date: 2011-08-03 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
17
- requirement: &2154635660 !ruby/object:Gem::Requirement
17
+ requirement: &2157636100 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *2154635660
25
+ version_requirements: *2157636100
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: slop
28
- requirement: &2154634820 !ruby/object:Gem::Requirement
28
+ requirement: &2157635080 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2154634820
36
+ version_requirements: *2157635080
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: highline
39
- requirement: &2154632940 !ruby/object:Gem::Requirement
39
+ requirement: &2157634160 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2154632940
47
+ version_requirements: *2157634160
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: mechanize
50
- requirement: &2154632520 !ruby/object:Gem::Requirement
50
+ requirement: &2157633560 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2154632520
58
+ version_requirements: *2157633560
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: activeresource
61
- requirement: &2154632020 !ruby/object:Gem::Requirement
61
+ requirement: &2157633020 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - <
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: 3.1.0
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2154632020
69
+ version_requirements: *2157633020
70
70
  description: Allow to deploy projects from webistrano via console
71
71
  email:
72
72
  - dariusz.gertych@gmail.com
@@ -83,6 +83,7 @@ files:
83
83
  - Rakefile
84
84
  - bin/webistrano_cli
85
85
  - lib/webistrano_cli.rb
86
+ - lib/webistrano_cli/config.rb
86
87
  - lib/webistrano_cli/deployment.rb
87
88
  - lib/webistrano_cli/project.rb
88
89
  - lib/webistrano_cli/stage.rb
@@ -104,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
105
  version: '0'
105
106
  segments:
106
107
  - 0
107
- hash: -342391452499143948
108
+ hash: -1627625348420381559
108
109
  required_rubygems_version: !ruby/object:Gem::Requirement
109
110
  none: false
110
111
  requirements:
@@ -113,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
114
  version: '0'
114
115
  segments:
115
116
  - 0
116
- hash: -342391452499143948
117
+ hash: -1627625348420381559
117
118
  requirements: []
118
119
  rubyforge_project: webistrano_cli
119
120
  rubygems_version: 1.6.2