capfig 0.1.0
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/Manifest +5 -0
- data/README.markdown +0 -0
- data/Rakefile +12 -0
- data/capfig.gemspec +34 -0
- data/lib/capfig.rb +46 -0
- data/test/capfig_test.rb +24 -0
- metadata +87 -0
data/Manifest
ADDED
data/README.markdown
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('capfig', '0.1.0') do |p|
|
6
|
+
p.description = "Easily configure cap deployments"
|
7
|
+
p.url = "http://github.com/elitheeli/capfig"
|
8
|
+
p.author = "Eli Fox-Epstein"
|
9
|
+
p.email = "eli@elilies.com"
|
10
|
+
p.ignore_pattern = ['tmp/*', 'script/*']
|
11
|
+
p.development_dependencies = ['capistrano >=2.0.0']
|
12
|
+
end
|
data/capfig.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{capfig}
|
5
|
+
s.version = "0.1.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Eli Fox-Epstein"]
|
9
|
+
s.date = %q{2010-03-20}
|
10
|
+
s.description = %q{Easily configure cap deployments}
|
11
|
+
s.email = %q{eli@elilies.com}
|
12
|
+
s.extra_rdoc_files = ["README.markdown", "lib/capfig.rb"]
|
13
|
+
s.files = ["README.markdown", "Rakefile", "lib/capfig.rb", "test/capfig_test.rb", "Manifest", "capfig.gemspec"]
|
14
|
+
s.homepage = %q{http://github.com/elitheeli/capfig}
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Capfig", "--main", "README.markdown"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{capfig}
|
18
|
+
s.rubygems_version = %q{1.3.6}
|
19
|
+
s.summary = %q{Easily configure cap deployments}
|
20
|
+
s.test_files = ["test/capfig_test.rb"]
|
21
|
+
|
22
|
+
if s.respond_to? :specification_version then
|
23
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
+
s.specification_version = 3
|
25
|
+
|
26
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
+
s.add_development_dependency(%q<capistrano>, [">= 2.0.0"])
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<capistrano>, [">= 2.0.0"])
|
30
|
+
end
|
31
|
+
else
|
32
|
+
s.add_dependency(%q<capistrano>, [">= 2.0.0"])
|
33
|
+
end
|
34
|
+
end
|
data/lib/capfig.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
abort "Requires Capistrano 2!" unless Capistrano::Configuration.respond_to?(:instance)
|
2
|
+
|
3
|
+
module CapFig
|
4
|
+
def configuration_for(name, settings = {})
|
5
|
+
settings[:path], settings[:filename] = File.split(settings[:filepath]) if settings[:filepath]
|
6
|
+
settings[:path] ||= 'config'
|
7
|
+
settings[:chmod] ||= 775
|
8
|
+
|
9
|
+
after 'deploy:update_code', "#{name}:symlink"
|
10
|
+
before 'deploy:setup', name.to_sym
|
11
|
+
namespace(name.to_sym) do
|
12
|
+
desc "Configuration for #{name}"
|
13
|
+
task(:default) do
|
14
|
+
set(:shared_dir) { File.join(fetch(:shared_path), settings[:path]) }
|
15
|
+
set(:shared_file) { File.join(fetch(:shared_dir), settings[:filename]) } if settings[:filename]
|
16
|
+
run "mkdir -p #{shared_dir}"
|
17
|
+
run "chmod #{settings[:chmod]} #{shared_dir}" if settings[:chmod]
|
18
|
+
if settings[:filename]
|
19
|
+
settings[:text] = yield if block_given?
|
20
|
+
puts settings[:text], shared_file
|
21
|
+
run "chmod #{settings[:chmod]} #{shared_file}"
|
22
|
+
elsif block_given?
|
23
|
+
yield
|
24
|
+
end
|
25
|
+
end
|
26
|
+
sym_path = File.join(File.split("#{settings[:path]}/#{settings[:filename]}"))
|
27
|
+
symlink_task name, sym_path, :chmod => settings[:chmod]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def symlink_task(nspace, path, settings = {})
|
32
|
+
settings[:chmod] ||= 775
|
33
|
+
desc "Create the symlink for #{File.basename(path)}"
|
34
|
+
namespace(nspace.to_sym) do
|
35
|
+
task(:symlink) do
|
36
|
+
from = File.join(fetch(:shared_path), path)
|
37
|
+
to = File.join(fetch(:release_path), path)
|
38
|
+
run "mkdir -p #{File.dirname(to)}"
|
39
|
+
run "chmod #{settings[:chmod]} #{File.dirname(to)}" if settings[:chmod]
|
40
|
+
run "ln -nfs #{from} #{to}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
Capistrano::Configuration.send(:include, CapFig)
|
data/test/capfig_test.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'capistrano'
|
4
|
+
require File.dirname(__FILE__) + "/../lib/capfig"
|
5
|
+
|
6
|
+
module Capistrano
|
7
|
+
class Configuration
|
8
|
+
include CapFig
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class CapfigTest < Test::Unit::TestCase
|
13
|
+
|
14
|
+
def setup
|
15
|
+
@cap = Capistrano::Configuration.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_basic_configuration
|
19
|
+
@cap.configuration_for(:foo)
|
20
|
+
tasks = @cap.task_list(true).map {|t| [t.name, t.namespace.name]}
|
21
|
+
assert tasks.include? [:default, :foo]
|
22
|
+
assert tasks.include? [:symlink, :foo]
|
23
|
+
end
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: capfig
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 0.1.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Eli Fox-Epstein
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-03-20 00:00:00 -04: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
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 2
|
29
|
+
- 0
|
30
|
+
- 0
|
31
|
+
version: 2.0.0
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
description: Easily configure cap deployments
|
35
|
+
email: eli@elilies.com
|
36
|
+
executables: []
|
37
|
+
|
38
|
+
extensions: []
|
39
|
+
|
40
|
+
extra_rdoc_files:
|
41
|
+
- README.markdown
|
42
|
+
- lib/capfig.rb
|
43
|
+
files:
|
44
|
+
- README.markdown
|
45
|
+
- Rakefile
|
46
|
+
- lib/capfig.rb
|
47
|
+
- test/capfig_test.rb
|
48
|
+
- Manifest
|
49
|
+
- capfig.gemspec
|
50
|
+
has_rdoc: true
|
51
|
+
homepage: http://github.com/elitheeli/capfig
|
52
|
+
licenses: []
|
53
|
+
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options:
|
56
|
+
- --line-numbers
|
57
|
+
- --inline-source
|
58
|
+
- --title
|
59
|
+
- Capfig
|
60
|
+
- --main
|
61
|
+
- README.markdown
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
version: "0"
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 1
|
77
|
+
- 2
|
78
|
+
version: "1.2"
|
79
|
+
requirements: []
|
80
|
+
|
81
|
+
rubyforge_project: capfig
|
82
|
+
rubygems_version: 1.3.6
|
83
|
+
signing_key:
|
84
|
+
specification_version: 3
|
85
|
+
summary: Easily configure cap deployments
|
86
|
+
test_files:
|
87
|
+
- test/capfig_test.rb
|