screwcap 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.bundle/config ADDED
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_DISABLE_SHARED_GEMS: "1"
data/Manifest.txt CHANGED
@@ -1,3 +1,4 @@
1
+ .bundle/config
1
2
  Gemfile
2
3
  Gemfile.lock
3
4
  History.txt
@@ -33,5 +34,5 @@ test/config/undefined_command_set.rb
33
34
  test/config/undefined_item.rb
34
35
  test/config/undefined_server.rb
35
36
  test/config/unknown_use.rb
37
+ test/config/upload.rb
36
38
  test/config/use.rb
37
- test/test_command_set.rb
data/Rakefile CHANGED
@@ -11,10 +11,10 @@ Hoe.plugin :newgem
11
11
  # Generate all the Rake tasks
12
12
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
13
13
  $hoe = Hoe.spec 'screwcap' do
14
- self.version = '0.1'
14
+ self.version = '0.2'
15
15
  self.developer 'Grant Ammons', 'grant@pipelinedeals.com'
16
16
  self.rubyforge_name = self.name # TODO this is default value
17
- self.extra_deps = [['net-ssh','>= 2.0.23'],['net-ssh-gateway','>=1.0.1']]
17
+ self.extra_deps = [['net-ssh','>= 2.0.23'],['net-ssh-gateway','>=1.0.1'], ['net-scp','>=1.0.4']]
18
18
  end
19
19
 
20
20
  require 'newgem/tasks'
data/lib/screwcap.rb CHANGED
@@ -16,7 +16,7 @@ require 'screwcap/sequence'
16
16
  require 'screwcap/deployer'
17
17
 
18
18
  module Screwcap
19
- VERSION='0.1'
19
+ VERSION='0.2'
20
20
 
21
21
  class TaskNotFound < RuntimeError; end
22
22
  class NoServersDefined < Exception; end
data/lib/screwcap/task.rb CHANGED
@@ -129,7 +129,6 @@ class Task < Screwcap::Base
129
129
  rescue Net::SSH::AuthenticationFailed => e
130
130
  raise Net::SSH::AuthenticationFailed, "Authentication failed for server named #{server.name}. Please check your authentication credentials."
131
131
  rescue Exception => e
132
- debugger
133
132
  errorlog red(" F: (#{address}): #{e}")
134
133
  ensure
135
134
  log blue("*** END executing task #{self.__name} on #{server.name} with address #{address}\n\n") unless self.__options[:silent] == true
data/screwcap.gemspec CHANGED
@@ -6,7 +6,7 @@ require 'bundler/version'
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "screwcap"
9
- s.version = "0.1"
9
+ s.version = "0.2"
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.author = "Grant Ammons"
12
12
  s.email = ["grant@pipelinedealsco.com"]
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.add_dependency(['net-ssh','>=2.0.23'])
17
17
  s.add_dependency(['net-ssh-gateway','>=1.0.1'])
18
+ s.add_dependency(['net-scp','>=1.0.4'])
18
19
  s.rubyforge_project = 'screwcap'
19
20
 
20
21
  s.files = Dir.glob("{bin,lib}/**/*") + %w(README.rdoc screwcap.gemspec)
data/spec/task_spec.rb CHANGED
@@ -16,22 +16,22 @@ describe "Tasks" do
16
16
  Net::SCP.stubs(:upload!).returns(nil)
17
17
  end
18
18
 
19
- #it "should be able to create variables" do
20
- # task = @deployer.__tasks.find {|t| t.name == :task1 }
21
- # task.bango.should == "bongo"
22
- #end
19
+ it "should be able to create variables" do
20
+ task = @deployer.__tasks.find {|t| t.name == :task1 }
21
+ task.bango.should == "bongo"
22
+ end
23
23
 
24
- #it "should compile run statements" do
25
- # task = @deployer.__tasks.find {|t| t.name == :task1 }
26
- # task.should have(6).__commands
27
- #end
24
+ it "should compile run statements" do
25
+ task = @deployer.__tasks.find {|t| t.name == :task1 }
26
+ task.should have(6).__commands
27
+ end
28
28
 
29
- #it "should be able to execute statements on a remote server" do
30
- # task = @deployer.__tasks.find {|t| t.name == :task1 }
31
- # task.execute!
32
- # @stderr.should == []
33
- # @stdout.size.should == 29
34
- #end
29
+ it "should be able to execute statements on a remote server" do
30
+ task = @deployer.__tasks.find {|t| t.name == :task1 }
31
+ task.execute!
32
+ @stderr.should == []
33
+ @stdout.size.should == 29
34
+ end
35
35
 
36
36
  it "should be able to use variables in the run statement" do
37
37
  task = @deployer.__tasks.find {|t| t.name == :task1 }
@@ -39,30 +39,30 @@ describe "Tasks" do
39
39
  command.should == "deploy dir = tester"
40
40
  end
41
41
 
42
- #it "should be able to override a globally set variable" do
43
- # @deployer.deploy_var_2.should == "bongo"
44
- # @deployer.deploy_var_3.should == %w(one two)
42
+ it "should be able to override a globally set variable" do
43
+ @deployer.deploy_var_2.should == "bongo"
44
+ @deployer.deploy_var_3.should == %w(one two)
45
45
 
46
- # task = @deployer.__tasks.find {|t| t.name == :task1 }
47
- # task.deploy_var_2.should == "shasta"
46
+ task = @deployer.__tasks.find {|t| t.name == :task1 }
47
+ task.deploy_var_2.should == "shasta"
48
48
 
49
- # task = @deployer.__tasks.find {|t| t.name == :task2 }
50
- # task.deploy_var_2.should == "purple"
51
- # task.deploy_var_3.should == "mountain dew"
52
- #end
49
+ task = @deployer.__tasks.find {|t| t.name == :task2 }
50
+ task.deploy_var_2.should == "purple"
51
+ task.deploy_var_3.should == "mountain dew"
52
+ end
53
53
 
54
- #it "should complain if you do not pass the task a server argument" do
55
- # lambda { Deployer.new(:recipe_file => "./test/config/no_server.rb", :silent => false)}.should raise_error(Screwcap::ConfigurationError)
56
- #end
54
+ it "should complain if you do not pass the task a server argument" do
55
+ lambda { Deployer.new(:recipe_file => "./test/config/no_server.rb", :silent => false)}.should raise_error(Screwcap::ConfigurationError)
56
+ end
57
57
 
58
- #it "should complain if you pass a server that is not defined" do
59
- # lambda { Deployer.new(:recipe_file => "./test/config/undefined_server.rb", :silent => false)}.should raise_error(Screwcap::ConfigurationError)
60
- #end
58
+ it "should complain if you pass a server that is not defined" do
59
+ lambda { Deployer.new(:recipe_file => "./test/config/undefined_server.rb", :silent => false)}.should raise_error(Screwcap::ConfigurationError)
60
+ end
61
61
 
62
- #it "should be able to disable parallel running" do
63
- # # this is hard to test. with threads and stuff
64
- # lambda { @deployer.run! :non_parallel }.should_not raise_error
65
- #end
62
+ it "should be able to disable parallel running" do
63
+ # this is hard to test. with threads and stuff
64
+ lambda { @deployer.run! :non_parallel }.should_not raise_error
65
+ end
66
66
 
67
67
  it "should be able to run local commands" do
68
68
  lambda { @deployer.run! :task3 }.should_not raise_error
@@ -16,8 +16,15 @@ task_for :logic, :server => :test do
16
16
  end
17
17
  end
18
18
 
19
- task_for :expect, :server => :test do
19
+ command_set :fail do
20
+ run "ls"
21
+ end
22
+
23
+ command_set :success do
20
24
  run "ls"
21
- expect "somecommand", "true", :fail => :revert
25
+ end
26
+
27
+ task_for :expect, :server => :test do
28
+ run "ls", :onfail => :fail, :onsuccess => :success
22
29
  end
23
30
 
@@ -0,0 +1,4 @@
1
+ server :test, :address => "slashdot.org", :user => "root"
2
+ task_for :upload, :server => :test do
3
+ scp :local => "/tmp/grant", :remote => "tmp/grant"
4
+ end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: screwcap
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 15
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
- version: "0.1"
8
+ - 2
9
+ version: "0.2"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Grant Ammons
@@ -50,9 +50,25 @@ dependencies:
50
50
  type: :runtime
51
51
  version_requirements: *id002
52
52
  - !ruby/object:Gem::Dependency
53
- name: rubyforge
53
+ name: net-scp
54
54
  prerelease: false
55
55
  requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 31
61
+ segments:
62
+ - 1
63
+ - 0
64
+ - 4
65
+ version: 1.0.4
66
+ type: :runtime
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
69
+ name: rubyforge
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
56
72
  none: false
57
73
  requirements:
58
74
  - - ">="
@@ -64,11 +80,11 @@ dependencies:
64
80
  - 4
65
81
  version: 2.0.4
66
82
  type: :development
67
- version_requirements: *id003
83
+ version_requirements: *id004
68
84
  - !ruby/object:Gem::Dependency
69
85
  name: hoe
70
86
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
87
+ requirement: &id005 !ruby/object:Gem::Requirement
72
88
  none: false
73
89
  requirements:
74
90
  - - ">="
@@ -80,7 +96,7 @@ dependencies:
80
96
  - 2
81
97
  version: 2.6.2
82
98
  type: :development
83
- version_requirements: *id004
99
+ version_requirements: *id005
84
100
  description: |-
85
101
  Screwcap is a library that wraps Net::SSH and makes it easy to perform actions on remote servers. It's not smart and does not make any assumptions about your setup.
86
102
 
@@ -95,6 +111,7 @@ extra_rdoc_files:
95
111
  - History.txt
96
112
  - Manifest.txt
97
113
  files:
114
+ - .bundle/config
98
115
  - Gemfile
99
116
  - Gemfile.lock
100
117
  - History.txt
@@ -130,8 +147,8 @@ files:
130
147
  - test/config/undefined_item.rb
131
148
  - test/config/undefined_server.rb
132
149
  - test/config/unknown_use.rb
150
+ - test/config/upload.rb
133
151
  - test/config/use.rb
134
- - test/test_command_set.rb
135
152
  has_rdoc: true
136
153
  homepage: http://github.com/#{github_username}/#{project_name}
137
154
  licenses: []
@@ -167,5 +184,5 @@ rubygems_version: 1.3.7
167
184
  signing_key:
168
185
  specification_version: 3
169
186
  summary: Screwcap is a library that wraps Net::SSH and makes it easy to perform actions on remote servers
170
- test_files:
171
- - test/test_command_set.rb
187
+ test_files: []
188
+
@@ -1,40 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
-
3
- class TestCommandSet < Test::Unit::TestCase
4
-
5
- def setup
6
- Net::SSH.stubs(:start).yields(SSHObject.new(:return_stream => :stdout, :return_data => "hostname = asdf\n"))
7
- end
8
-
9
- def test_command_sets
10
- deployer = Deployer.new(:recipe_file => "./test/config/command_sets.rb", :silent => true)
11
- assert deployer
12
-
13
- task = deployer.__tasks.find {|t| t.name == :use_command_set_no_override }
14
- assert task
15
-
16
- task.__command_sets.first.instance_eval(&task.__command_sets.first.__block)
17
- assert_equal ["tester","run with tester", "bongo"], task.__commands
18
-
19
- task = deployer.__tasks.find {|t| t.name == :use_command_set_with_override }
20
- assert task
21
-
22
- assert_equal ["shasta","run with shasta", "bongo"], task.__commands
23
-
24
- task = deployer.__tasks.find {|t| t.name == :use_command_set_complex_override }
25
- assert task
26
- assert_equal ["dingle"], task.__commands
27
- end
28
-
29
- def test_nested_command_sets
30
- deployer = Deployer.new(:recipe_file => "./test/config/command_sets.rb", :silent => true)
31
-
32
- task = deployer.__tasks.find {|t| t.name == :nested_command_set }
33
- assert task
34
- assert_equal %w(1 2 3 4), task.__commands
35
- end
36
-
37
- def test_undefined_value_in_command_set
38
- assert_raise(NoMethodError) { Deployer.new(:recipe_file => "./test/config/undefined_command_set.rb", :silent => true) }
39
- end
40
- end