capistrano-extensions 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +12 -6
- data/Manifest.txt +1 -1
- data/README.txt +3 -167
- data/Rakefile +10 -22
- data/capistrano-extensions.gemspec +39 -0
- data/lib/capistrano-extensions/version.rb +1 -1
- metadata +4 -3
data/History.txt
CHANGED
@@ -1,8 +1,14 @@
|
|
1
|
-
|
1
|
+
=== v0.1.4 / 2008-09-12
|
2
|
+
* In local:restore_db, the db import would previously fail if the username was not specified in your database.yml
|
3
|
+
file. I have corrected this and set it to default to 'root' now (as rails does).
|
4
|
+
|
5
|
+
* Moved a lot of the information/instructions out of the README and onto the github wiki
|
6
|
+
(http://github.com/jtrupiano/capistrano-extensions/wikis/home).
|
7
|
+
|
8
|
+
* Started hosting the gem at rubyforge. You can now install directly from gem without downloading the source!
|
2
9
|
|
3
10
|
=== v0.1.3 / 2008-08-25
|
4
|
-
*
|
5
|
-
Introduced a new property :shared_content, which is intended to completely replace :content_directories
|
11
|
+
* Introduced a new property :shared_content, which is intended to completely replace :content_directories
|
6
12
|
eventually. All directories previously specified by :content_directories go through a simple transformation
|
7
13
|
to match the new hash construct that is :shared_content. Now, we can specify non-public directories (though
|
8
14
|
they are still limited to within RAILS_ROOT), e.g.
|
@@ -13,10 +19,10 @@
|
|
13
19
|
Then, on successive deployments, this symlink is just recreated, and all of our feeds are still accessible
|
14
20
|
(because they were stored outside of RAILS_ROOT and then symlinked in).
|
15
21
|
|
16
|
-
=== v0.1.2 / 2008-07-20
|
17
|
-
2008-08-20
|
18
22
|
* Fixed a mysql bug that was encountered in "sync" operations. When passing a password on the command-line
|
19
23
|
(e.g. mysqldump -uuser -ppass), $'s in the password need to be escaped. I also fixed the scenario where
|
20
24
|
there was no password (common for restoring to the development environment). Previously you would be
|
21
25
|
prompted for a password only in the case where there was no password required. This was a result of
|
22
|
-
the way the mysql commands were being built: "mysql -u#{user} -p#{password}" where password was nil or ""
|
26
|
+
the way the mysql commands were being built: "mysql -u#{user} -p#{password}" where password was nil or ""
|
27
|
+
|
28
|
+
=== v0.1.2 / 2008-07-20
|
data/Manifest.txt
CHANGED
@@ -4,8 +4,8 @@ README.txt
|
|
4
4
|
Rakefile
|
5
5
|
bin/capistrano-extensions-sync-content
|
6
6
|
bin/capistrano-extensions-sync-db
|
7
|
+
capistrano-extensions.gemspec
|
7
8
|
lib/capistrano-extensions.rb
|
8
9
|
lib/capistrano-extensions/deploy.rb
|
9
10
|
lib/capistrano-extensions/geminstaller_dependency.rb
|
10
11
|
lib/capistrano-extensions/version.rb
|
11
|
-
|
data/README.txt
CHANGED
@@ -12,170 +12,7 @@ This gem provides a base set of Capistrano extensions including the following:
|
|
12
12
|
* tasks for working with remote logfiles
|
13
13
|
* tasks for database/asset synchronization from production back to local environments
|
14
14
|
|
15
|
-
|
16
|
-
* Missing a detailed sample config file
|
17
|
-
* Describe the shortcomings (or rather my dissatisfaction) with the remote syncing executables for
|
18
|
-
assets/db. It works fine for now, but is a little wasteful.
|
19
|
-
* Database synchronization _only_ works for MySQL. (not sure if I intend to change this any time soon)
|
20
|
-
* This has really only been tested on single-server deployments, so I'm not sure how well it will work
|
21
|
-
on more complex environments -- I'll personally be able to test that in the coming month or two, but
|
22
|
-
that will be dictated by necessity.
|
23
|
-
* Still no support for user-uploaded assets stored outside of the public/ directory
|
24
|
-
* Need to automate the generation of this document: the descriptions for each attribute/task
|
25
|
-
should mirror the description in the deploy script (in other words, I should only have to update the
|
26
|
-
the documentation in one place).
|
27
|
-
|
28
|
-
== CAPISTRANO CODE EXTENSIONS:
|
29
|
-
* new RemoteDependency type :gemfile
|
30
|
-
|
31
|
-
depend(:remote, :gemfile, "config/geminstaller.yml")
|
32
|
-
|
33
|
-
Aliases the depend method (with depend_without_gemfile). Proxies all calls with :type != :gemfile
|
34
|
-
to the aliased method. When :type == :gemfile, the gems file is parsed (using geminstaller
|
35
|
-
codebase) to iteratively call depend_without_gemfile with each gem found in the YAML file.
|
36
|
-
|
37
|
-
This is still really only suitable for single-server deployments. The idea would be to add new
|
38
|
-
options to the geminstaller.yml config syntax that would allow us to reference specific
|
39
|
-
capistrano roles for a given gem. For instance, the database server won't need all of our rails
|
40
|
-
gems. A separate ferret server may require it's own set of gems, etc.
|
41
|
-
|
42
|
-
== NEW RECIPE PROPERTIES --> DEFAULTS
|
43
|
-
# Provides a way to specify which uploadable asset directories (that live in public/)
|
44
|
-
# should be retrievable via the local:copy_production_content and local:copy_production
|
45
|
-
# tasks described below. Note that this parameter is also utilized by the
|
46
|
-
# passenger-recipes gem to keep these uploadable assets in the shared/ context.
|
47
|
-
:content_directories --> []
|
48
|
-
|
49
|
-
# This property is similar to :content_directories, except it doesn't assume that the symlinks
|
50
|
-
# exist in the public/ directory (the default location for FileColumn file storage).
|
51
|
-
#
|
52
|
-
# This property is a hash of remote => local mappings, e.g.
|
53
|
-
#
|
54
|
-
# "feeds" => "content" (or "uploaded_assets/meal" => "public/meal")
|
55
|
-
#
|
56
|
-
# These examples will effectively create the following symlinks in a deployable environment:
|
57
|
-
# ln -sf \#{shared_path}/feeds RAILS_ROOT/content
|
58
|
-
# ln -sf \#{shared_path}/uploaded_assets/meal RAILS_ROOT/public/meal
|
59
|
-
#
|
60
|
-
# Each key (the "remote" directory) must be a directory found in \#{shared_path} (in a deployable environment)
|
61
|
-
# Each value (the "local" directory) must be a directory found in RAILS_ROOT (in a local environment)
|
62
|
-
:shared_content --> {}
|
63
|
-
|
64
|
-
# Which environments are deployable-- for each environment specified in this array,
|
65
|
-
# a helper function by the same name is created that is executed only if RAILS_ENV
|
66
|
-
# is set to that value. See examples/sample_deploy.rb for a code sample.
|
67
|
-
:deployable_environments --> [:production]
|
68
|
-
|
69
|
-
# We at SLS use a different config structure than rails does out of the box.
|
70
|
-
# Setting this value to :sls will alter some of the expected paths. Normally,
|
71
|
-
# you will not have to set this variable. To see a discussion of the SLS config
|
72
|
-
# file structure, see http://blog.smartlogicsolutions.com/2008/06/02/better-setup-for-environments-in-rails/
|
73
|
-
:config_structure --> :rails
|
74
|
-
|
75
|
-
== NEW RECIPES:
|
76
|
-
* deploy:create_shared_file_column_dirs
|
77
|
-
|
78
|
-
Creates shared filecolumn directories and symbolic links to them by
|
79
|
-
reading the :content_directories property. Note that this task is not invoked by default,
|
80
|
-
but rather is exposed to you as a helper. To utilize, you'll want to override
|
81
|
-
deploy:default and invoke this yourself.
|
82
|
-
|
83
|
-
* deploy:gem_update
|
84
|
-
|
85
|
-
Invokes geminstaller to ensure that the proper gem set is installed on the target server.
|
86
|
-
Note that this task is not invoked by default, but rather is exposed to you as a helper.
|
87
|
-
|
88
|
-
* log:pull
|
89
|
-
|
90
|
-
Tarballs deployable environment's rails logfile (identified by
|
91
|
-
RAILS_ENV environment variable, which defaults to 'production') and copies it to the local
|
92
|
-
filesystem
|
93
|
-
|
94
|
-
* local:backup_db
|
95
|
-
|
96
|
-
Backs up deployable environment's database (identified by the
|
97
|
-
RAILS_ENV environment variable, which defaults to 'production') and copies it to the local machine
|
98
|
-
|
99
|
-
* local:restore_db
|
100
|
-
|
101
|
-
Untars the backup file downloaded from local:backup_db (specified via the FROM env
|
102
|
-
variable, which defalts to RAILS_ENV), and imports (via mysql command line tool) it back into the database
|
103
|
-
defined in the RAILS_ENV env variable.
|
104
|
-
|
105
|
-
ToDo: implement proper rollback: currently, if the mysql import succeeds, but the rm fails,
|
106
|
-
the database won't be rolled back. Not sure this is even all that important or necessary, since
|
107
|
-
it's a local database that doesn't demand integrity (in other words, you're still going to have to
|
108
|
-
fix it, but it's not mission critical).
|
109
|
-
|
110
|
-
* local:backup_content
|
111
|
-
|
112
|
-
Downloads a tarball of uploaded content (that lives in public/ directory, as specified by
|
113
|
-
the :content_directories property) from the production site back to the local filesystem
|
114
|
-
|
115
|
-
* local:restore_content
|
116
|
-
|
117
|
-
Restores the backed up content (evn var FROM specifies which environment was backed up,
|
118
|
-
defaults to RAILS_ENV) to the local development environment app
|
119
|
-
|
120
|
-
* local:sync_db
|
121
|
-
|
122
|
-
Wrapper for local:backup_db and local:restore_db
|
123
|
-
|
124
|
-
$> cap local:sync_db RAILS_ENV=production RESTORE_ENV=development
|
125
|
-
|
126
|
-
* local:sync_content
|
127
|
-
|
128
|
-
Wrapper for local:backup_content and local:restore_content
|
129
|
-
|
130
|
-
$> cap local:sync_content RAILS_ENV=production RESTORE_ENV=development
|
131
|
-
|
132
|
-
* local:sync
|
133
|
-
|
134
|
-
Wrapper for local:sync_db and local:sync_content
|
135
|
-
|
136
|
-
$> cap local:sync RAILS_ENV=production RESTORE_ENV=development
|
137
|
-
|
138
|
-
* remote:restore_db
|
139
|
-
|
140
|
-
Uploads the backup file downloaded from local:backup_db (specified via the FROM env variable),
|
141
|
-
copies it to the remove environment specified by RAILS_ENV, and imports (via mysql command line
|
142
|
-
tool) it back into the remote database.
|
143
|
-
|
144
|
-
* remote:sync_db
|
145
|
-
|
146
|
-
Backs up target deployable environment's database (identified by the FROM environment variable,
|
147
|
-
which defaults to 'production') and restores it to the remote database identified by the TO
|
148
|
-
environment variable, which defaults to "staging."
|
149
|
-
|
150
|
-
Because multiple capistrano configurations must be loaded, an external executable
|
151
|
-
(capistrano-extensions-sync_db) is invoked, which independently calls capistrano. See the
|
152
|
-
executable at $GEM_HOME/capistrano-extensions-0.1.3/bin/capistrano-extensions-sync_db
|
153
|
-
|
154
|
-
$> cap remote:sync_db FROM=production TO=staging
|
155
|
-
|
156
|
-
* remote:restore_content
|
157
|
-
|
158
|
-
Uploads the backup file downloaded from local:backup_content (specified via the FROM env variable),
|
159
|
-
copies it to the remote environment specified by RAILS_ENV, and unpacks it into the shared/
|
160
|
-
directory.
|
161
|
-
|
162
|
-
* remote:sync_content
|
163
|
-
|
164
|
-
Backs up target deployable environment's shared content (identified by the FROM environment
|
165
|
-
variable, which defaults to 'production') and restores it to the remote environment identified
|
166
|
-
by the TO envrionment variable, which defaults to "staging."
|
167
|
-
|
168
|
-
Because multiple capistrano configurations must be loaded, an external executable
|
169
|
-
(capistrano-extensions-sync_content) is invoked, which independently calls capistrano. See the
|
170
|
-
executable at $GEM_HOME/capistrano-extensions-0.1.2/bin/capistrano-extensions-sync_content
|
171
|
-
|
172
|
-
$> cap remote:sync_content FROM=production TO=staging
|
173
|
-
|
174
|
-
* remote:sync
|
175
|
-
|
176
|
-
Wrapper fro remote:sync_db and remote:sync_content.
|
177
|
-
|
178
|
-
$> cap remote:sync FROM=production TO=staging
|
15
|
+
For a detailed exploration of these features, check out the wiki: http://github.com/jtrupiano/capistrano-extensions/wikis/home
|
179
16
|
|
180
17
|
== SYNOPSIS:
|
181
18
|
|
@@ -183,13 +20,12 @@ This gem provides a base set of Capistrano extensions including the following:
|
|
183
20
|
|
184
21
|
== REQUIREMENTS:
|
185
22
|
|
186
|
-
* Capistrano
|
23
|
+
* Capistrano >= 2.4.3
|
187
24
|
* GemInstaller = 0.4.3
|
188
25
|
|
189
26
|
== INSTALL:
|
190
27
|
|
191
|
-
*
|
192
|
-
* sudo gem install pkg/capistrano-extensions-0.1.3.gem --local
|
28
|
+
* sudo gem install capistrano-extensions
|
193
29
|
|
194
30
|
== LICENSE:
|
195
31
|
|
data/Rakefile
CHANGED
@@ -1,17 +1,3 @@
|
|
1
|
-
# GEM_SPEC = eval(File.read("#{File.dirname(__FILE__)}/#{PKG_NAME}.gemspec"))
|
2
|
-
#
|
3
|
-
# Rake::GemPackageTask.new(GEM_SPEC) do |p|
|
4
|
-
# p.gem_spec = GEM_SPEC
|
5
|
-
# p.need_tar = true
|
6
|
-
# p.need_zip = true
|
7
|
-
# end
|
8
|
-
#
|
9
|
-
# desc "Clean up generated directories and files"
|
10
|
-
# task :clean do
|
11
|
-
# rm_rf "pkg"
|
12
|
-
# end
|
13
|
-
|
14
|
-
|
15
1
|
# -*- ruby -*-
|
16
2
|
|
17
3
|
require 'rubygems'
|
@@ -19,24 +5,26 @@ require 'hoe'
|
|
19
5
|
require './lib/capistrano-extensions.rb'
|
20
6
|
require "./lib/capistrano-extensions/version"
|
21
7
|
|
22
|
-
|
23
8
|
PKG_NAME = "capistrano-extensions"
|
24
9
|
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
|
25
|
-
|
10
|
+
version = CapistranoExtensions::Version::STRING.dup
|
11
|
+
if ENV['SNAPSHOT'].to_i == 1
|
12
|
+
version << "." << Time.now.utc.strftime("%Y%m%d%H%M%S")
|
13
|
+
end
|
14
|
+
PKG_VERSION = version
|
26
15
|
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
27
16
|
|
28
|
-
|
29
|
-
|
30
|
-
p.
|
31
|
-
|
32
|
-
p.name = "capistrano-extensions"
|
17
|
+
Hoe.new(PKG_NAME, PKG_VERSION) do |p|
|
18
|
+
p.rubyforge_name = 'johntrupiano' # if different than lowercase project name
|
19
|
+
p.developer('John Trupiano', 'jtrupiano@gmail.com')
|
20
|
+
p.name = PKG_NAME
|
33
21
|
p.version = PKG_VERSION
|
34
22
|
#p.platform = Gem::Platform::RUBY
|
35
23
|
p.author = "John Trupiano"
|
36
24
|
p.email = "jtrupiano@gmail.com"
|
37
25
|
p.description = %q(A base set of Capistrano extensions-- aids with the file_column plugin, the GemInstaller gem, multiple deployable environments, logfile helpers, and database/asset synchronization from production to local environment)
|
38
26
|
p.summary = p.description # More details later??
|
39
|
-
p.remote_rdoc_dir =
|
27
|
+
p.remote_rdoc_dir = PKG_NAME # Release to /PKG_NAME
|
40
28
|
# p.changes = p.paragraphs_of('CHANGELOG', 0..1).join("\n\n")
|
41
29
|
p.extra_deps << ["capistrano", ">= 2.4.3"]
|
42
30
|
p.extra_deps << ["geminstaller", ">= 0.4.3"]
|
@@ -0,0 +1,39 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = %q{capistrano-extensions}
|
3
|
+
s.version = "0.1.4"
|
4
|
+
|
5
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
|
+
s.authors = ["John Trupiano"]
|
7
|
+
s.date = %q{2008-09-12}
|
8
|
+
s.description = %q{A base set of Capistrano extensions-- aids with the file_column plugin, the GemInstaller gem, multiple deployable environments, logfile helpers, and database/asset synchronization from production to local environment}
|
9
|
+
s.email = %q{jtrupiano@gmail.com}
|
10
|
+
s.executables = ["capistrano-extensions-sync-content", "capistrano-extensions-sync-db"]
|
11
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
|
12
|
+
s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/capistrano-extensions-sync-content", "bin/capistrano-extensions-sync-db", "lib/capistrano-extensions.rb", "lib/capistrano-extensions/deploy.rb", "lib/capistrano-extensions/geminstaller_dependency.rb", "lib/capistrano-extensions/version.rb"]
|
13
|
+
s.has_rdoc = true
|
14
|
+
s.homepage = %q{http://github.com/jtrupiano/capistrano-extensions}
|
15
|
+
s.rdoc_options = ["--main", "README.txt"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{johntrupiano}
|
18
|
+
s.rubygems_version = %q{1.2.0}
|
19
|
+
s.summary = %q{A base set of Capistrano extensions-- aids with the file_column plugin, the GemInstaller gem, multiple deployable environments, logfile helpers, and database/asset synchronization from production to local environment}
|
20
|
+
|
21
|
+
if s.respond_to? :specification_version then
|
22
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
23
|
+
s.specification_version = 2
|
24
|
+
|
25
|
+
if current_version >= 3 then
|
26
|
+
s.add_runtime_dependency(%q<capistrano>, [">= 2.4.3"])
|
27
|
+
s.add_runtime_dependency(%q<geminstaller>, [">= 0.4.3"])
|
28
|
+
s.add_development_dependency(%q<hoe>, [">= 1.7.0"])
|
29
|
+
else
|
30
|
+
s.add_dependency(%q<capistrano>, [">= 2.4.3"])
|
31
|
+
s.add_dependency(%q<geminstaller>, [">= 0.4.3"])
|
32
|
+
s.add_dependency(%q<hoe>, [">= 1.7.0"])
|
33
|
+
end
|
34
|
+
else
|
35
|
+
s.add_dependency(%q<capistrano>, [">= 2.4.3"])
|
36
|
+
s.add_dependency(%q<geminstaller>, [">= 0.4.3"])
|
37
|
+
s.add_dependency(%q<hoe>, [">= 1.7.0"])
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Trupiano
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-09-
|
12
|
+
date: 2008-09-12 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- Rakefile
|
61
61
|
- bin/capistrano-extensions-sync-content
|
62
62
|
- bin/capistrano-extensions-sync-db
|
63
|
+
- capistrano-extensions.gemspec
|
63
64
|
- lib/capistrano-extensions.rb
|
64
65
|
- lib/capistrano-extensions/deploy.rb
|
65
66
|
- lib/capistrano-extensions/geminstaller_dependency.rb
|
@@ -86,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
87
|
version:
|
87
88
|
requirements: []
|
88
89
|
|
89
|
-
rubyforge_project:
|
90
|
+
rubyforge_project: johntrupiano
|
90
91
|
rubygems_version: 1.2.0
|
91
92
|
signing_key:
|
92
93
|
specification_version: 2
|