pave 0.11.2 → 0.12.0.rc1

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: 573d74804fac37b5033e61bacf54234f23e8e6ea
4
- data.tar.gz: 492d87ec3af270309e419bf07f83921935b2c401
3
+ metadata.gz: ee3b26614af6ef5ee8b795c41f5612e11ecab9fa
4
+ data.tar.gz: f396a4f33229e3bca509d7df8899aee82481b565
5
5
  SHA512:
6
- metadata.gz: 5b4c8b971d36d6a263bf41b84fbc7df57bae8ec555a900d97d0f844cf40409e42f81c6876cd48fdc1c22c02eced6482324a82cfbe941326e93e47e469adf5c64
7
- data.tar.gz: ad54fc0690e349140eeef3a804118918e03486215ac593a763e9a67945f75cd70b129c71e8bb12ba6d6a51509061bbd79fccc474955598ef6c48f1228291ad21
6
+ metadata.gz: 53d7a5ada8f5320667b6ae1526b1f6a07754119138b9d0ca3450ce570f4098e4d029c931c3eb104ec70700df9a31695415a72994163e8deee55a5b91a24b61b6
7
+ data.tar.gz: b0a863b9bb0b74ea175e26e9049d97ccb5f8de6149368b75542b173e03235cd13549fae6eb25834cf8f581a1a797de15caafc09c3b72dec5f9a58b8708b4e521
data/README.md CHANGED
@@ -28,16 +28,12 @@ This:
28
28
 
29
29
  $ pave deploy:setup
30
30
 
31
- This sets up a Git-based deployment script to the remote server and deploys an initial version. SSH access is required. You may run it multiple times and setup as many deployment endpoints as you want.
31
+ This sets up a Git-based deployment script to the remote server and deploys an initial version. SSH access is required.
32
32
 
33
33
  $ pave deploy
34
34
 
35
35
  Deploys the site using git. Files and databases are not deployed (see below for how to do that).
36
36
 
37
- $ pave deploy staging feature-branch
38
-
39
- Deploys feature-branch to staging remote.
40
-
41
37
  ## Database
42
38
 
43
39
  $ pave db:create mydatabase
data/bin/pave CHANGED
@@ -240,6 +240,15 @@ command :"files:push" do |c|
240
240
  end
241
241
  end
242
242
 
243
+ command :"files:sync" do |c|
244
+ c.syntax = "pave files:sync"
245
+ c.description = "Syncronize local and remote files directories."
246
+ c.action do |args|
247
+ remote = args.first || "live"
248
+ Pave::Files.sync(remote)
249
+ end
250
+ end
251
+
243
252
  command :"generate:theme" do |c|
244
253
  c.syntax = "pave generate:theme THEME_NAME"
245
254
  c.description = "Set up a blank theme with sass."
data/lib/pave/files.rb CHANGED
@@ -2,27 +2,34 @@ module Pave
2
2
  class Files
3
3
  include Pave::Shell
4
4
 
5
+ def self.exclusions
6
+ " --exclude 'files/tmp' --exclude 'files/cache' "
7
+ end
8
+
9
+ def self.flags
10
+ " -uazh ssh --progress "
11
+ end
12
+
5
13
  def self.clear_cache
6
14
  sh "rm -rf ./files/tmp/*; rm -rf ./files/cache/*;"
7
15
  end
8
16
 
9
17
  def self.push(remote="live")
10
- clear_cache
11
18
  server = Pave::Remote.server(remote)
12
19
  directory = Pave::Remote.directory(remote)
13
- sh "scp -r ./files #{server}:#{directory}/local_files;"
14
- sh "ssh #{server} 'cd #{directory};
15
- mv ./files ./old_files;
16
- mv ./local_files ./files && rm -rf ./old_files;'"
20
+ sh "rsync #{flags} #{exclusions} ./files #{server}:#{directory}/files"
17
21
  end
18
22
 
19
23
  def self.pull(remote="live")
20
24
  server = Pave::Remote.server(remote)
21
25
  directory = Pave::Remote.directory(remote)
22
- sh "scp -r #{server}:#{directory}/files ./remote_files;
23
- mv ./files ./old_files;
24
- mv ./remote_files ./files && rm -rf ./old_files;"
26
+ sh "rsync #{flags} #{exclusions} #{server}:#{directory}/files ./files"
25
27
  clear_cache
26
28
  end
29
+
30
+ def self.sync(remote="live")
31
+ pull(remote)
32
+ push(remote)
33
+ end
27
34
  end
28
35
  end
data/lib/pave/remote.rb CHANGED
@@ -4,7 +4,7 @@ module Pave
4
4
 
5
5
  def self.setup
6
6
  server = ask "Username and hostname of the remote server (e.g. user@server.com): "
7
- folder = ask "Name of the remote directory (e.g. ~/webapps/appname): "
7
+ folder = ask "Name of the remote directory (e.g. ~/webapps/appname/): "
8
8
  remote = ask "Desired git remote name (e.g. live): "
9
9
  script = File.join(File.expand_path("../..", File.dirname(__FILE__)), "resources/deploy.sh")
10
10
 
@@ -23,12 +23,7 @@ module Pave
23
23
 
24
24
  def self.url(remote="live")
25
25
  remotes = shell("git remote -v").output
26
- begin
27
- remotes.match(/#{remote}\s+(.*)\s+\(push\)/)[1]
28
- rescue NoMethodError
29
- puts "Could not find remote named #{remote}. Please run `pave deploy:setup` to create it."
30
- exit
31
- end
26
+ remotes.match(/#{remote}\s+(.*)\s+\(push\)/)[1]
32
27
  end
33
28
 
34
29
  def self.server(remote="live")
data/lib/pave/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pave
2
- VERSION = "0.11.2"
2
+ VERSION = "0.12.0.rc1"
3
3
  end
data/resources/deploy.sh CHANGED
@@ -3,9 +3,6 @@ if [ ! -d 'deploy.git' ]; then
3
3
  mkdir deploy.git && cd deploy.git
4
4
  git init --bare
5
5
  echo '#!/bin/sh' > hooks/post-receive
6
- echo 'while read oldrev newrev ref' >> hooks/post-receive
7
- echo 'do' >> hooks/post-receive
8
- echo 'GIT_WORK_TREE=.. git checkout -f -B `basename "$ref"` "$newrev"' >> hooks/post-receive
9
- echo 'done' >> hooks/post-receive
6
+ echo 'GIT_WORK_TREE=.. git checkout -f' >> hooks/post-receive
10
7
  chmod +x hooks/post-receive
11
8
  fi
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pave
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.2
4
+ version: 0.12.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamon Holmgren
@@ -9,76 +9,76 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-28 00:00:00.000000000 Z
12
+ date: 2014-02-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '1.3'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ~>
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: '1.3'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rdoc
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ~>
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
34
  version: '4.1'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '4.1'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ~>
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
48
  version: '10.1'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ~>
53
+ - - "~>"
54
54
  - !ruby/object:Gem::Version
55
55
  version: '10.1'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rspec
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ~>
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
62
  version: '2'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ~>
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: '2'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: commander
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ~>
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
76
  version: '4.1'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ~>
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: '4.1'
84
84
  description: Provides a set of command line tools for Concrete5.
@@ -90,11 +90,11 @@ executables:
90
90
  extensions: []
91
91
  extra_rdoc_files: []
92
92
  files:
93
- - .floo
94
- - .flooignore
95
- - .gitignore
96
- - .ruby-gemset
97
- - .ruby-version
93
+ - ".floo"
94
+ - ".flooignore"
95
+ - ".gitignore"
96
+ - ".ruby-gemset"
97
+ - ".ruby-version"
98
98
  - Gemfile
99
99
  - Gemfile.lock
100
100
  - LICENSE.txt
@@ -139,17 +139,17 @@ require_paths:
139
139
  - lib
140
140
  required_ruby_version: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - '>='
142
+ - - ">="
143
143
  - !ruby/object:Gem::Version
144
144
  version: 1.9.3
145
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - '>='
147
+ - - ">"
148
148
  - !ruby/object:Gem::Version
149
- version: '0'
149
+ version: 1.3.1
150
150
  requirements: []
151
151
  rubyforge_project:
152
- rubygems_version: 2.1.11
152
+ rubygems_version: 2.2.0
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Provides a set of command line tools for Concrete5.