capistrano-extensions 0.1.3 → 0.1.4
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.
- 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
|