murder 0.1.1 → 0.1.2
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/README.md +4 -1
- data/VERSION +1 -1
- data/lib/murder.rb +1 -1
- data/lib/murder/murder.rb +2 -2
- data/murder.gemspec +4 -4
- metadata +9 -4
data/README.md
CHANGED
@@ -13,6 +13,9 @@ centralized distribution systems wouldn't otherwise function. A "Murder" is
|
|
13
13
|
normally used to refer to a flock of crows, which in this case applies to a
|
14
14
|
bunch of servers doing something.
|
15
15
|
|
16
|
+
For an intro video, see:
|
17
|
+
[Twitter - Murder Bittorrent Deploy System](http://vimeo.com/11280885)
|
18
|
+
|
16
19
|
|
17
20
|
QUICK START
|
18
21
|
-----------
|
@@ -134,7 +137,7 @@ up on all hosts, then manually run the murder cap tasks:
|
|
134
137
|
|
135
138
|
4. Stop the seeder and tracker:
|
136
139
|
|
137
|
-
cap murder:stop_seeding
|
140
|
+
cap murder:stop_seeding tag="Deploy1"
|
138
141
|
cap murder:stop_tracker
|
139
142
|
|
140
143
|
When this finishes, all peers will have the files in /tmp/Deploy1
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/murder.rb
CHANGED
@@ -35,7 +35,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
35
35
|
# get around the fact that find_servers does not work in role evaluation
|
36
36
|
# (it tries to evaluate all roles, leading to infinite recursion)
|
37
37
|
role :peer do
|
38
|
-
roles.reject{|k,v| excluded_roles.include? k }.values.map
|
38
|
+
roles.reject{|k,v| excluded_roles.include? k }.values.map{|r| r.servers }.flatten.uniq.reject{|s| s.options[:no_release] }
|
39
39
|
end
|
40
40
|
|
41
41
|
role(:tracker) { roles[:peer].servers.first }
|
data/lib/murder/murder.rb
CHANGED
@@ -53,7 +53,7 @@ namespace :murder do
|
|
53
53
|
DESC
|
54
54
|
task :start_seeding, :roles => :seeder do
|
55
55
|
require_tag
|
56
|
-
run "screen -dms 'seeder-#{tag}' python #{remote_murder_path}/murder_client.py seeder '#{filename}.torrent' '#{filename}' `host $HOSTNAME | awk '{print $4}'`"
|
56
|
+
run "screen -dms 'seeder-#{tag}' python #{remote_murder_path}/murder_client.py seeder '#{filename}.torrent' '#{filename}' `LC_ALL=C host $HOSTNAME | awk '/has address/ {print $4}' | head -n 1`"
|
57
57
|
end
|
58
58
|
|
59
59
|
desc <<-DESC
|
@@ -91,7 +91,7 @@ namespace :murder do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
upload("#{filename}.torrent", "#{filename}.torrent", :via => :scp)
|
94
|
-
run "
|
94
|
+
run "python #{remote_murder_path}/murder_client.py peer '#{filename}.torrent' '#{filename}' `LC_ALL=C host $CAPISTRANO:HOST$ | awk '/has address/ {print $4}' | head -n 1`"
|
95
95
|
|
96
96
|
if ENV['path_is_file']
|
97
97
|
run "cp #{filename} #{destination_path}"
|
data/murder.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{murder}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Larry Gadea", "Matt Freels"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-10-11}
|
13
13
|
s.description = %q{Large scale server deploys using BitTorrent and the BitTornado library}
|
14
14
|
s.email = %q{lg@twitter.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -85,14 +85,14 @@ Gem::Specification.new do |s|
|
|
85
85
|
s.homepage = %q{http://github.com/lg/murder}
|
86
86
|
s.rdoc_options = ["--charset=UTF-8"]
|
87
87
|
s.require_paths = ["lib"]
|
88
|
-
s.rubygems_version = %q{1.3.
|
88
|
+
s.rubygems_version = %q{1.3.7}
|
89
89
|
s.summary = %q{Large scale server deploys using BitTorrent and the BitTornado library}
|
90
90
|
|
91
91
|
if s.respond_to? :specification_version then
|
92
92
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
93
93
|
s.specification_version = 3
|
94
94
|
|
95
|
-
if Gem::Version.new(Gem::
|
95
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
96
96
|
else
|
97
97
|
end
|
98
98
|
else
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: murder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Larry Gadea
|
@@ -15,7 +16,7 @@ autorequire:
|
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2010-
|
19
|
+
date: 2010-10-11 00:00:00 -07:00
|
19
20
|
default_executable:
|
20
21
|
dependencies: []
|
21
22
|
|
@@ -103,23 +104,27 @@ rdoc_options:
|
|
103
104
|
require_paths:
|
104
105
|
- lib
|
105
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
106
108
|
requirements:
|
107
109
|
- - ">="
|
108
110
|
- !ruby/object:Gem::Version
|
111
|
+
hash: 3
|
109
112
|
segments:
|
110
113
|
- 0
|
111
114
|
version: "0"
|
112
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
113
117
|
requirements:
|
114
118
|
- - ">="
|
115
119
|
- !ruby/object:Gem::Version
|
120
|
+
hash: 3
|
116
121
|
segments:
|
117
122
|
- 0
|
118
123
|
version: "0"
|
119
124
|
requirements: []
|
120
125
|
|
121
126
|
rubyforge_project:
|
122
|
-
rubygems_version: 1.3.
|
127
|
+
rubygems_version: 1.3.7
|
123
128
|
signing_key:
|
124
129
|
specification_version: 3
|
125
130
|
summary: Large scale server deploys using BitTorrent and the BitTornado library
|