vlad-push 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/Rakefile +0 -1
  2. data/lib/vlad/push.rb +25 -25
  3. data/test/test_vlad_push.rb +2 -7
  4. metadata +39 -64
data/Rakefile CHANGED
@@ -6,7 +6,6 @@ require 'hoe'
6
6
  Hoe.spec 'vlad-push' do
7
7
  developer('Joshua P. Mervine', 'joshua@mervine.net')
8
8
  extra_deps << ['vlad', '~> 2.0']
9
- clean_globs << '.yardoc'
10
9
  end
11
10
 
12
11
  # vim: syntax=ruby
data/lib/vlad/push.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'vlad'
2
+
2
3
  class Vlad::Push
3
- VERSION = "1.0.1"
4
+ VERSION = "1.0.2"
4
5
 
5
6
  set :source, Vlad::Push.new
6
7
 
@@ -11,39 +12,39 @@ class Vlad::Push
11
12
  set :ssh_flags, ""
12
13
  set :release_name, ENV['RELEASE']||release_name
13
14
 
14
- #@paired = false
15
-
16
15
  # telling vlad not to bother running checkout
17
- # but this doesn't seem to work, I'll probably
18
- # moving it to the Rakefile
19
- #set :skip_scm, true
20
-
16
+ # but this doesn't seem to work, I'll probably
17
+ # moving it to the Rakefile
21
18
  def checkout(revision, destination)
22
- "echo 'skipping checkout per vlad-push'"
19
+ "echo '[vlad-push] skipping checkout, not needed without scm'"
23
20
  end
24
21
 
22
+ # overwrite vlad export to simply copied what was
23
+ # pushed from the 'repository' location to the
24
+ # 'destination'
25
+ # * 'source' is for vlad support, but ignored
25
26
  def export(source, destination)
26
27
  # ignoring source
27
28
  "cp -r #{repository} #{destination}"
28
- #[ "mkdir -p #{repository}",
29
- #"cd #{repository}",
30
- #"tar -xzf /tmp/#{application}-#{release_name}.tgz",
31
- #"cp -r #{repository} #{destination}"
32
- #].join(" && ")
33
29
  end
34
30
 
31
+ # telling vlad to use "repository" as "revision" just
32
+ # in case this method is needed
35
33
  def revision(revision)
36
- # telling vlad to use "repository" as "revision" as we have no scm
37
34
  repository
38
35
  end
39
36
 
37
+ # push extracted and compressed files to 'host'
38
+ # this should be run once for each host by
39
+ # the rake task :push
40
40
  def push(host)
41
- [ "#{push_scp} #{ssh_flags}",
41
+ [ "#{push_scp} #{ssh_flags.join(' ')}",
42
42
  "/tmp/#{application}-#{release_name}.tgz",
43
43
  "#{host}:/tmp/#{application}-#{release_name}.tgz"
44
44
  ].join(" ")
45
45
  end
46
46
 
47
+ # extract the remote compressed file on each host
47
48
  def push_extract
48
49
  [ "if [ -e #{repository} ]; then rm -rf #{repository}; fi",
49
50
  "mkdir -p #{repository}",
@@ -52,6 +53,8 @@ class Vlad::Push
52
53
  ].join(" && ")
53
54
  end
54
55
 
56
+ # clean up old compressed archives both locally and
57
+ # remotely
55
58
  def push_cleanup
56
59
  [ "rm -vrf /tmp/#{application}-*.tgz",
57
60
  [ "if [ -e #{repository} ]",
@@ -61,6 +64,8 @@ class Vlad::Push
61
64
  ].join(" && ")
62
65
  end
63
66
 
67
+ # compress the files in the current working directory
68
+ # to be pushed to the remote server
64
69
  def compress
65
70
  [ "tar -czf /tmp/#{application}-#{release_name}.tgz",
66
71
  '--exclude "\.git*"',
@@ -69,22 +74,18 @@ class Vlad::Push
69
74
  ].join(" ")
70
75
  end
71
76
 
77
+ # using :vlad namespace to make this part
78
+ # of vlad in rake
72
79
  namespace :vlad do
73
80
 
74
81
  desc "Push current working directory to remote servers."
75
82
  remote_task :push do
76
83
  sh source.compress
77
- domain.each do |host|
84
+ # TODO: find a better way to ensure array for each
85
+ [domain].flatten.each do |host|
78
86
  sh source.push(host)
79
87
  end
80
88
  run source.push_extract
81
- #if !@paired
82
- #puts " "
83
- #puts "To update successfully, execute the following command:"
84
- #puts " "
85
- #puts " $ rake <environment> vlad:update RELEASE=#{release_name}"
86
- #puts " "
87
- #end
88
89
  end
89
90
 
90
91
  # Updating 'vlad:cleanup' to include post-task
@@ -100,13 +101,12 @@ class Vlad::Push
100
101
 
101
102
  desc "Runs push and update"
102
103
  task :deploy do
103
- #@paired = true
104
104
  Rake::Task["vlad:push"].invoke
105
105
  Rake::Task["vlad:update"].invoke
106
106
  end
107
107
 
108
108
  end
109
109
 
110
- end # class def
110
+ end
111
111
 
112
112
 
@@ -7,19 +7,14 @@ class TestVladPush < Test::Unit::TestCase
7
7
  @source = Vlad::Push.new
8
8
  set :repository, "/tmp/repo"
9
9
  set :push_scp, "scp"
10
- set :ssh_flags, [ "-i", "~/.ssh/id_rsa_example" ].join(" ")
10
+ set :ssh_flags, [ "-i", "~/.ssh/id_rsa_example" ]
11
11
  set :application, "testapp"
12
12
  set :release_name, "12345678910"
13
13
  end
14
14
 
15
- def test_rake
16
- assert system("rake -T vlad:push")
17
- assert system("rake -T vlad:push | grep push")
18
- end
19
-
20
15
  def test_checkout
21
16
  cmd = @source.checkout 'foo', 'bar'
22
- assert_equal "echo 'skipping checkout per vlad-push'", cmd
17
+ assert_equal "echo '[vlad-push] skipping checkout, not needed without scm'", cmd
23
18
  end
24
19
 
25
20
  def test_export
metadata CHANGED
@@ -1,64 +1,48 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vlad-push
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 1
10
- version: 1.0.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Joshua P. Mervine
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-07-21 00:00:00 -07:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-08-03 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: vlad
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2151899840 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 2
32
- - 0
33
- version: "2.0"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: hoe
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2151899840
25
+ - !ruby/object:Gem::Dependency
26
+ name: hoe
27
+ requirement: &2151898680 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
29
+ requirements:
42
30
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 23
45
- segments:
46
- - 2
47
- - 10
48
- version: "2.10"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.10'
49
33
  type: :development
50
- version_requirements: *id002
51
- description: Adds support to Vlad for pushing files to a remote server without SCM. (Really, pre 1.x didn't work as expected.)
52
- email:
34
+ prerelease: false
35
+ version_requirements: *2151898680
36
+ description: Adds support to Vlad for pushing files to a remote server without SCM.
37
+ (Really, pre 1.x didn't work as expected.)
38
+ email:
53
39
  - joshua@mervine.net
54
40
  executables: []
55
-
56
41
  extensions: []
57
-
58
- extra_rdoc_files:
42
+ extra_rdoc_files:
59
43
  - Manifest.txt
60
44
  - README.txt
61
- files:
45
+ files:
62
46
  - .autotest
63
47
  - lib/vlad/push.rb
64
48
  - Manifest.txt
@@ -66,40 +50,31 @@ files:
66
50
  - README.txt
67
51
  - test/test_vlad_push.rb
68
52
  - .gemtest
69
- has_rdoc: true
70
53
  homepage: http://github.com/jmervine/vlad-push
71
54
  licenses: []
72
-
73
55
  post_install_message:
74
- rdoc_options:
56
+ rdoc_options:
75
57
  - --main
76
58
  - README.txt
77
- require_paths:
59
+ require_paths:
78
60
  - lib
79
- required_ruby_version: !ruby/object:Gem::Requirement
61
+ required_ruby_version: !ruby/object:Gem::Requirement
80
62
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
- version: "0"
88
- required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
89
68
  none: false
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- hash: 3
94
- segments:
95
- - 0
96
- version: "0"
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
97
73
  requirements: []
98
-
99
74
  rubyforge_project: vlad-push
100
- rubygems_version: 1.6.2
75
+ rubygems_version: 1.8.5
101
76
  signing_key:
102
77
  specification_version: 3
103
78
  summary: Adds support to Vlad for pushing files to a remote server without SCM
104
- test_files:
79
+ test_files:
105
80
  - test/test_vlad_push.rb