capigento 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +3 -0
- data/README.md +0 -0
- data/bin/capigento +86 -0
- data/lib/capigento.rb +30 -0
- data/lib/magento.rb +57 -0
- metadata +82 -0
data/CHANGELOG
ADDED
data/README.md
ADDED
File without changes
|
data/bin/capigento
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
config_path = 'app/etc'
|
7
|
+
|
8
|
+
OptionParser.new do |opts|
|
9
|
+
opts.banner = "Usage: #{File.basename($0)} [path]"
|
10
|
+
|
11
|
+
opts.on("-h", "--help", "Displays this help info") do
|
12
|
+
puts opts
|
13
|
+
exit 0
|
14
|
+
end
|
15
|
+
|
16
|
+
opts.on("-p", "--app NAME", "Specify app name (folder) to capigento") do |path|
|
17
|
+
config_path = path
|
18
|
+
end
|
19
|
+
|
20
|
+
begin
|
21
|
+
opts.parse!(ARGV)
|
22
|
+
rescue OptionParser::ParseError => e
|
23
|
+
warn e.message
|
24
|
+
puts opts
|
25
|
+
exit 1
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
if ARGV.empty?
|
30
|
+
abort "Please specify the directory to capigento, e.g. `#{File.basename($0)} .'"
|
31
|
+
elsif !File.exists?(ARGV.first)
|
32
|
+
abort "`#{ARGV.first}' does not exist."
|
33
|
+
elsif !File.directory?(ARGV.first)
|
34
|
+
abort "`#{ARGV.first}' is not a directory."
|
35
|
+
elsif ARGV.length > 1
|
36
|
+
abort "Too many arguments; please specify only the directory to capigento."
|
37
|
+
end
|
38
|
+
|
39
|
+
def unindent(string)
|
40
|
+
indentation = string[/\A\s*/]
|
41
|
+
string.strip.gsub(/^#{indentation}/, "")
|
42
|
+
end
|
43
|
+
|
44
|
+
base = ARGV.shift
|
45
|
+
|
46
|
+
files = {
|
47
|
+
"Capfile" => unindent(<<-FILE),
|
48
|
+
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
|
49
|
+
load Gem.find_files('magento.rb').last.to_s
|
50
|
+
load '#{config_path}/deploy'
|
51
|
+
FILE
|
52
|
+
|
53
|
+
"#{config_path}/deploy.rb" => unindent(<<-FILE)
|
54
|
+
set :application, "set your application name here"
|
55
|
+
set :domain, "\#{application}.com"
|
56
|
+
set :deploy_to, "/var/www/\#{domain}"
|
57
|
+
|
58
|
+
set :repository, "\#{domain}:/var/repos/\#{application}.git"
|
59
|
+
set :scm, :git
|
60
|
+
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `subversion`, `mercurial`, `perforce`, `subversion` or `none`
|
61
|
+
|
62
|
+
role :web, domain # Your HTTP server, Apache/etc
|
63
|
+
role :app, domain # This may be the same as your `Web` server
|
64
|
+
role :db, domain, :primary => true # This is where Rails migrations will run
|
65
|
+
|
66
|
+
set :keep_releases, 3
|
67
|
+
FILE
|
68
|
+
}
|
69
|
+
|
70
|
+
files.each do |file, content|
|
71
|
+
file = File.join(base, file)
|
72
|
+
if File.exists?(file)
|
73
|
+
warn "[skip] '#{file}' already exists"
|
74
|
+
elsif File.exists?(file.downcase)
|
75
|
+
warn "[skip] '#{file.downcase}' exists, which could conflict with `#{file}'"
|
76
|
+
else
|
77
|
+
unless File.exists?(File.dirname(file))
|
78
|
+
puts "[add] making directory '#{File.dirname(file)}'"
|
79
|
+
FileUtils.mkdir(File.dirname(file))
|
80
|
+
end
|
81
|
+
puts "[add] writing '#{file}'"
|
82
|
+
File.open(file, "w") { |f| f.write(content) }
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
puts "[done] Magento project capigented!"
|
data/lib/capigento.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
def prompt_with_default(var, default, &block)
|
2
|
+
set(var) do
|
3
|
+
Capistrano::CLI.ui.ask("#{var} [#{default}] : ", &block)
|
4
|
+
end
|
5
|
+
set var, default if eval("#{var.to_s}.empty?")
|
6
|
+
end
|
7
|
+
|
8
|
+
namespace :deploy do
|
9
|
+
desc "Overwrite the start task because symfony doesn't need it."
|
10
|
+
task :start do ; end
|
11
|
+
|
12
|
+
desc "Overwrite the restart task because symfony doesn't need it."
|
13
|
+
task :restart do ; end
|
14
|
+
|
15
|
+
desc "Overwrite the stop task because symfony doesn't need it."
|
16
|
+
task :stop do ; end
|
17
|
+
|
18
|
+
desc "[Overload] We perform only update action"
|
19
|
+
task :cold do
|
20
|
+
update
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "[Overload] Removed"
|
24
|
+
task :testall do
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "[Overload] Removed"
|
28
|
+
task :migrate do
|
29
|
+
end
|
30
|
+
end
|
data/lib/magento.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
load Gem.find_files('capigento.rb').last.to_s
|
2
|
+
|
3
|
+
set :cache_path, "var"
|
4
|
+
|
5
|
+
set :shared_children, ["media", "downloader", "system"]
|
6
|
+
|
7
|
+
set :shared_files, ["app/etc/local.xml", "index.php", ".htaccess"]
|
8
|
+
|
9
|
+
set :asset_children, []
|
10
|
+
|
11
|
+
namespace :mage do
|
12
|
+
desc "Removes all magento cache directories content"
|
13
|
+
task :cc do
|
14
|
+
clear_cache
|
15
|
+
clear_media_cache
|
16
|
+
end
|
17
|
+
desc "Removes magento main cache directory content"
|
18
|
+
task :clear_cache do
|
19
|
+
run "if [ -d #{current_path}/var/cache ] ; then rm -rf #{current_path}/var/cache/*; fi"
|
20
|
+
end
|
21
|
+
desc "Rmoves magento assets cache directories content"
|
22
|
+
task :clear_media_cache do
|
23
|
+
run "if [ -d #{current_path}/media/css ] ; then rm -rf #{current_path}/media/css/*; fi"
|
24
|
+
run "if [ -d #{current_path}/media/js ] ; then rm -rf #{current_path}/media/js/*; fi"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
namespace :deploy do
|
29
|
+
desc "Symlink static directories and static files that need to remain between deployments."
|
30
|
+
task :share_childs do
|
31
|
+
if shared_children
|
32
|
+
shared_children.each do |link|
|
33
|
+
run "mkdir -p #{shared_path}/#{link}"
|
34
|
+
run "if [ -d #{release_path}/#{link} ] ; then rm -rf #{release_path}/#{link}; fi"
|
35
|
+
run "ln -nfs #{shared_path}/#{link} #{release_path}/#{link}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
if shared_files
|
39
|
+
shared_files.each do |link|
|
40
|
+
link_dir = File.dirname("#{shared_path}/#{link}")
|
41
|
+
run "mkdir -p #{link_dir}"
|
42
|
+
run "touch #{shared_path}/#{link}"
|
43
|
+
run "ln -nfs #{shared_path}/#{link} #{release_path}/#{link}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
desc "Update latest release source path."
|
49
|
+
task :finalize_update, :except => { :no_release => true } do
|
50
|
+
run "chmod -R g+w #{latest_release}" if fetch(:group_writable, true)
|
51
|
+
run "if [ -d #{latest_release}/#{cache_path} ] ; then rm -rf #{latest_release}/#{cache_path}; fi"
|
52
|
+
run "mkdir -p #{latest_release}/#{cache_path} && chmod -R 0777 #{latest_release}/#{cache_path}"
|
53
|
+
|
54
|
+
share_childs
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: capigento
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Witold Janusik
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-11-02 00:00:00 +01:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: capistrano
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 5
|
31
|
+
- 10
|
32
|
+
version: 2.5.10
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
description: " Deployment recipe for magento applications.\n"
|
36
|
+
email: me@freakphp.com
|
37
|
+
executables:
|
38
|
+
- capigento
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files: []
|
42
|
+
|
43
|
+
files:
|
44
|
+
- bin/capigento
|
45
|
+
- lib/capigento.rb
|
46
|
+
- lib/magento.rb
|
47
|
+
- README.md
|
48
|
+
- CHANGELOG
|
49
|
+
has_rdoc: true
|
50
|
+
homepage: http://capigento.hatimeria.com
|
51
|
+
licenses: []
|
52
|
+
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
|
56
|
+
require_paths:
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
requirements: []
|
75
|
+
|
76
|
+
rubyforge_project: capigento
|
77
|
+
rubygems_version: 1.3.7
|
78
|
+
signing_key:
|
79
|
+
specification_version: 3
|
80
|
+
summary: Deploying Magento PHP applications with Capistrano.
|
81
|
+
test_files: []
|
82
|
+
|