magentify 0.0.7 → 0.1.0

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: e107e22d07025ba95e1ed3863f60cd9a5dc77bb1
4
- data.tar.gz: 232e33f75ee3a5663479163770d3d43fff400e18
3
+ metadata.gz: ff1bbb842425d3bd571adef51ad8e4af5a411e20
4
+ data.tar.gz: 199537934883fe2bff97168737b672a240917838
5
5
  SHA512:
6
- metadata.gz: 2fea9054b8aeccb8cc0798585cf3306977bd451ab77b09cf4abae2d7f757c6da6a3724a3f6684a8fe08a9509131e364b02d0707299ae83dff731db78213972d5
7
- data.tar.gz: 94f4743283f9a2861ff85d8aaef514b7e665438ed850c39dd0b12a6ae79eccaed8e85e2cb548e0527e807a4c6d958a5bfa1a5f8e476631bd344b2fcb36779e5a
6
+ metadata.gz: 0eb3423862443d9bc3e7ad27bef7057bc5324658aec8db61a13710a55845c32f28e22797719a8e135bb5af3f783be8d361f7aa3ca92e6d8f95525215a4a2791c
7
+ data.tar.gz: ca2953d1cd268bc8260061f3c866ca1957151329474441578355ec2acd2f6050757eafe364f625af7ca5c3358850c5fabeba42d2745fa4b71c1f94f9fc01da66
@@ -0,0 +1,20 @@
1
+ Feature: Files
2
+ In order to test the app with production medias
3
+ As a developer
4
+ I want to pull (and push) medias assets from production server to my local machine
5
+
6
+ Scenario: User runs $ mages:files:pull
7
+ Given an app
8
+ When I execute deploy
9
+ Then Magento create some assets in media
10
+ And I create some assets locally
11
+ And I execute files:pull
12
+ Then the local media directory should be synced
13
+
14
+ Scenario: User runs $ mages:files:push
15
+ Given an app
16
+ When I execute deploy
17
+ Then I create some assets locally
18
+ And Magento create some assets in media
19
+ And I execute files:push
20
+ Then the remote media directory should be synced
@@ -36,7 +36,7 @@ Given /^an app$/ do
36
36
  template_path = File.expand_path(File.join(__FILE__, "..", "..", "templates", "deploy.erb"))
37
37
  compiled_template = ERB.new(File.read(template_path)).result(binding)
38
38
 
39
- File.open(File.join(@src_dir, "config", "deploy.rb"), 'w') {|f|
39
+ File.open(File.join(@src_dir, "config", "deploy.rb"), 'w') {|f|
40
40
  f.write compiled_template
41
41
  }
42
42
  end
@@ -0,0 +1,43 @@
1
+ When(/^I execute files:pull$/) do
2
+ Dir.chdir(@src_dir) do
3
+ @out = %x[cap mage:files:pull > /dev/null 2>&1]
4
+ end
5
+ end
6
+
7
+ Then(/^I execute files:push$/) do
8
+ Dir.chdir(@src_dir) do
9
+ @out = %x[cap mage:files:push > /dev/null 2>&1]
10
+ end
11
+ end
12
+
13
+ Then(/^Magento create some assets in media$/) do
14
+ File.open(File.join(@test_files_dir, "deployed", "current", "media", "asset1.jpg"), 'w') {|f|
15
+ f.write "asset1"
16
+ }
17
+ File.open(File.join(@test_files_dir, "deployed", "current", "media", "asset2.jpg"), 'w') {|f|
18
+ f.write "asset2"
19
+ }
20
+ end
21
+
22
+ Then(/^I create some assets locally$/) do
23
+ File.open(File.join(@src_dir, "media", "asset3.jpg"), 'w') {|f|
24
+ f.write "asset3"
25
+ }
26
+ end
27
+
28
+
29
+ Then(/^the local media directory should be synced$/) do
30
+ nb_files = Dir[File.join(@src_dir, "media", '**', '*')].count { |file| File.file?(file) }
31
+
32
+ nb_files.should == 3
33
+ File.exists?(File.join(@src_dir, "media", "asset1.jpg")).should be_true
34
+ File.exists?(File.join(@src_dir, "media", "asset2.jpg")).should be_true
35
+ File.exists?(File.join(@src_dir, "media", "asset3.jpg")).should be_true
36
+ end
37
+
38
+ Then(/^the remote media directory should be synced$/) do
39
+ nb_files = Dir[File.join(@test_files_dir, "deployed", "current", "media", '**', '*')].count { |file| File.file?(file) }
40
+
41
+ nb_files.should == 1
42
+ File.exists?(File.join(@test_files_dir, "deployed", "current", "media", "asset3.jpg")).should be_true
43
+ end
@@ -18,4 +18,6 @@ set :use_sudo, false
18
18
 
19
19
  set :app_symlinks, ["/media", "/var", "/sitemaps", "/staging"]
20
20
  set :app_shared_dirs, ["/app/etc", "/sitemaps", "/media", "/var", "/staging"]
21
- set :app_shared_files, ["/app/etc/local.xml"]
21
+ set :app_shared_files, ["/app/etc/local.xml"]
22
+
23
+ set :interactive_mode, false
@@ -16,6 +16,8 @@ _cset(:app_shared_files) {
16
16
 
17
17
  _cset :compile, false
18
18
  _cset :app_webroot, ''
19
+ _cset :app_relative_media_dir, 'media/'
20
+ _cset :interactive_mode, true
19
21
 
20
22
  namespace :mage do
21
23
  desc <<-DESC
@@ -121,8 +123,34 @@ namespace :mage do
121
123
  task :clean_log, :roles => [:web, :app] do
122
124
  run "cd #{current_path}#{app_webroot}/shell && php -f log.php -- clean"
123
125
  end
126
+
127
+ namespace :files do
128
+ desc <<-DESC
129
+ Pull magento media catalog files (from remote to local with rsync)
130
+ DESC
131
+ task :pull, :roles => :app, :except => { :no_release => true } do
132
+ remote_files_dir = "#{current_path}#{app_webroot}/#{app_relative_media_dir}"
133
+ local_files_dir = app_relative_media_dir
134
+ first_server = find_servers_for_task(current_task).first
135
+
136
+ run_locally("rsync --recursive --times --rsh=ssh --compress --human-readable --progress #{user}@#{first_server.host}:#{remote_files_dir} #{local_files_dir}")
137
+ end
138
+
139
+ desc <<-DESC
140
+ Push magento media catalog files (from local to remote)
141
+ DESC
142
+ task :push, :roles => :app, :except => { :no_release => true } do
143
+ remote_files_dir = "#{current_path}#{app_webroot}/#{app_relative_media_dir}"
144
+ local_files_dir = app_relative_media_dir
145
+ first_server = find_servers_for_task(current_task).first
146
+
147
+ if !interactive_mode || Capistrano::CLI.ui.agree("Do you really want to replace remote files by local files? (y/N)")
148
+ run_locally("rsync --recursive --times --rsh=ssh --compress --human-readable --progress --delete #{local_files_dir} #{user}@#{first_server.host}:#{remote_files_dir}")
149
+ end
150
+ end
151
+ end
124
152
  end
125
153
 
126
154
  after 'deploy:setup', 'mage:setup'
127
155
  after 'deploy:finalize_update', 'mage:finalize_update'
128
- after 'deploy:create_symlink', 'mage:compiler'
156
+ after 'deploy:create_symlink', 'mage:compiler'
@@ -1,3 +1,3 @@
1
1
  module Magentify
2
- VERSION = "0.0.7"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -39,14 +39,6 @@ namespace :deploy do
39
39
  # do nothing for non rails apps
40
40
  end
41
41
 
42
- desc <<-DESC
43
- [Overload] Default actions cancelled.
44
- DESC
45
- task :migrations do
46
- set :migrate_target, :latest
47
- # // do nothing for non rails apps
48
- end
49
-
50
42
  desc <<-DESC
51
43
  [Overload] Default actions only calls 'update'.
52
44
  DESC
metadata CHANGED
@@ -1,61 +1,61 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magentify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alistair Stead
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-03 00:00:00.000000000 Z
11
+ date: 2014-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 2.5.10
20
- - - ~>
20
+ - - "~>"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - '>='
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: 2.5.10
30
- - - ~>
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: cucumber
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - '>='
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - '>='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '>='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  description: An extension to Capistrano to deploy Magento. Adding the specific requirements
@@ -67,7 +67,7 @@ executables:
67
67
  extensions: []
68
68
  extra_rdoc_files: []
69
69
  files:
70
- - .gitignore
70
+ - ".gitignore"
71
71
  - Gemfile
72
72
  - LICENSE
73
73
  - README.md
@@ -76,6 +76,7 @@ files:
76
76
  - cucumber.yml
77
77
  - features/compiler.feature
78
78
  - features/deploy.feature
79
+ - features/files.feature
79
80
  - features/indexer.feature
80
81
  - features/log.feature
81
82
  - features/magentify.feature
@@ -83,6 +84,7 @@ files:
83
84
  - features/step_definitions/common_steps.rb
84
85
  - features/step_definitions/compiler_steps.rb
85
86
  - features/step_definitions/deploy_steps.rb
87
+ - features/step_definitions/files_steps.rb
86
88
  - features/step_definitions/indexer_steps.rb
87
89
  - features/step_definitions/log_steps.rb
88
90
  - features/step_definitions/magentify_steps.rb
@@ -105,23 +107,24 @@ require_paths:
105
107
  - lib
106
108
  required_ruby_version: !ruby/object:Gem::Requirement
107
109
  requirements:
108
- - - '>='
110
+ - - ">="
109
111
  - !ruby/object:Gem::Version
110
112
  version: '0'
111
113
  required_rubygems_version: !ruby/object:Gem::Requirement
112
114
  requirements:
113
- - - '>='
115
+ - - ">="
114
116
  - !ruby/object:Gem::Version
115
117
  version: '0'
116
118
  requirements: []
117
119
  rubyforge_project:
118
- rubygems_version: 2.0.3
120
+ rubygems_version: 2.2.0
119
121
  signing_key:
120
122
  specification_version: 4
121
123
  summary: Deploying Magento PHP applications with Capistrano.
122
124
  test_files:
123
125
  - features/compiler.feature
124
126
  - features/deploy.feature
127
+ - features/files.feature
125
128
  - features/indexer.feature
126
129
  - features/log.feature
127
130
  - features/magentify.feature
@@ -129,6 +132,7 @@ test_files:
129
132
  - features/step_definitions/common_steps.rb
130
133
  - features/step_definitions/compiler_steps.rb
131
134
  - features/step_definitions/deploy_steps.rb
135
+ - features/step_definitions/files_steps.rb
132
136
  - features/step_definitions/indexer_steps.rb
133
137
  - features/step_definitions/log_steps.rb
134
138
  - features/step_definitions/magentify_steps.rb