cluster_bomb 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,46 @@
1
+ require 'cluster_bomb/configuration.rb'
2
+ module ClusterBomb
3
+ module Shawties
4
+ SHAWTIES_FILE_NAME=File.join(Configuration::HOME,'shawties')
5
+
6
+ def define_shawtie(name, command)
7
+ @shawties ||={}
8
+ unless command.nil?
9
+ @shawties[name]=command
10
+ else
11
+ @shawties.delete name
12
+ end
13
+ save_shawties
14
+ end
15
+ def get_shawtie(name)
16
+ @shawties[name]
17
+ end
18
+ def load_shawties!
19
+ @shawties ||={}
20
+ Configuration.check_dir
21
+ begin
22
+ buf = File.read(SHAWTIES_FILE_NAME)
23
+ rescue
24
+ `touch #{SHAWTIES_FILE_NAME}`
25
+ buf = File.read(SHAWTIES_FILE_NAME)
26
+ end
27
+ unless buf.empty?
28
+ @shawties = YAML.load(buf)
29
+ end
30
+ end
31
+ def save_shawties
32
+ Configuration::check_dir
33
+ File.open(SHAWTIES_FILE_NAME,"w") {|f| f.write(@shawties.to_yaml)}
34
+ end
35
+ def shawtie_names
36
+ (@shawties.keys + ['d','l']).sort
37
+ end
38
+ def shawties_list
39
+ keys = @shawties.keys.sort
40
+ puts "Available shorts:"
41
+ keys.each do |k|
42
+ puts "#{k}\n #{@shawties[k]}"
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,16 @@
1
+ group "Built in tasks"
2
+ desc "Quick help"
3
+ task :help do
4
+ puts <<-EOHELP
5
+ syntax: cb <task> [options]
6
+ options:
7
+ cp status roles=<role list> ex. roles=database,webservers
8
+ EOHELP
9
+ end
10
+
11
+ desc "BombShell -- the cluster bomb shell interface."
12
+ task :shell do
13
+ require 'cluster_bomb/bomb_shell'
14
+ b = ClusterBomb::BombShell.new(self)
15
+ b.loop
16
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cluster_bomb
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 6
9
+ version: 0.2.6
10
+ platform: ruby
11
+ authors:
12
+ - hayzeus
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-11-10 00:00:00 -06:00
18
+ default_executable: cb
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: net-ssh
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
+ - 0
31
+ - 0
32
+ version: 2.0.0
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: net-scp
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ segments:
44
+ - 1
45
+ - 0
46
+ - 0
47
+ version: 1.0.0
48
+ type: :runtime
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: net-sftp
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 2
60
+ - 0
61
+ - 0
62
+ version: 2.0.0
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ description: Capistrano-like multi-host shell and task execution
66
+ email: mikey@swampgas.com
67
+ executables:
68
+ - cb
69
+ extensions: []
70
+
71
+ extra_rdoc_files: []
72
+
73
+ files:
74
+ - bin/cb
75
+ - lib/cluster_bomb/actest.rb
76
+ - lib/cluster_bomb/bomb.rb
77
+ - lib/cluster_bomb/bomb_shell.rb
78
+ - lib/cluster_bomb/cli.rb
79
+ - lib/cluster_bomb/cluster.rb
80
+ - lib/cluster_bomb/configuration.rb
81
+ - lib/cluster_bomb/dispatcher.rb
82
+ - lib/cluster_bomb/history.rb
83
+ - lib/cluster_bomb/logging.rb
84
+ - lib/cluster_bomb/roles.rb
85
+ - lib/cluster_bomb/shawties.rb
86
+ - lib/cluster_bomb/stdtasks.rb
87
+ has_rdoc: true
88
+ homepage: http://www.swampgas.com
89
+ licenses: []
90
+
91
+ post_install_message:
92
+ rdoc_options: []
93
+
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ segments:
102
+ - 1
103
+ - 8
104
+ - 6
105
+ version: 1.8.6
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ segments:
112
+ - 0
113
+ version: "0"
114
+ requirements: []
115
+
116
+ rubyforge_project:
117
+ rubygems_version: 1.3.7.1
118
+ signing_key:
119
+ specification_version: 3
120
+ summary: Do stuff across clusters
121
+ test_files: []
122
+