knife-santoku 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -8,7 +8,7 @@ http://en.wikipedia.org/wiki/Santoku
8
8
 
9
9
  Santoku is primarily used for firing off notifications when knife commands are run. There are two concepts in Santoku: callbacks, and notifiers. Santoku fires off callbacks before and after any knife command is run. Callbacks can be any arbitrary ruby code in config/santoku-before.rb or config/santoku-after.rb. However, they are primarily made up of regexp matcher functions that fire off notifications to Santoku notification plugins.
10
10
 
11
- Right now only Hipchat support has been written. More work will be done to let you drop your own notification classes into the lib/santoku/ folder of your chef repo to build integrations with your favorite systems. If you build out something and would like it added to the master project just send me a pull request.
11
+ Right now only Hipchat & Campfire support has been written. More work will be done to let you drop your own notification classes into the lib/santoku/ folder of your chef repo to build integrations with your favorite systems. If you build out something and would like it added to the master project just send me a pull request.
12
12
 
13
13
  You don't have to use Santoku for notifications, that's just what it was originally built for.
14
14
 
@@ -1,9 +1,14 @@
1
1
  ## Put this in config/santoku-after.rb
2
+ ## Use :hipchat or :campfire for the use of each notifier
2
3
 
3
4
  match /spork/ do
4
5
  notify :hipchat, "Someone used the spork plugin"
5
6
  end
6
7
 
8
+ match /spork/ do
9
+ notify :campfire, "Someone used the spork plugin"
10
+ end
11
+
7
12
  match /from file/ do
8
13
  notify :hipchat
9
14
  end
@@ -23,4 +28,8 @@ end
23
28
 
24
29
  match /bootstrap/ do
25
30
  notify :hipchat
31
+ end
32
+
33
+ match /bootstrap/ do
34
+ notify :campfire
26
35
  end
@@ -1,7 +1,13 @@
1
1
  ## Put this in config/santoku-before.rb
2
+ ## Use :hipchat or :campfire for the use of each notifier
2
3
 
3
4
  require 'etc'
4
5
 
5
6
  match /cookbook upload (.*)/ do |cookbook|
6
7
  notify :hipchat, "#{Etc.getlogin} started uploading #{cookbook}"
7
- end
8
+ end
9
+
10
+ match /cookbook upload (.*)/ do |cookbook|
11
+ notify :campfire, "#{Etc.getlogin} started uploading #{cookbook}"
12
+ end
13
+
@@ -5,4 +5,9 @@ hipchat:
5
5
  room: "developers"
6
6
  from: "Knife"
7
7
  notify: false
8
- color: "yellow"
8
+ color: "yellow"
9
+ campfire:
10
+ subdomain: "mycampfiredomain"
11
+ token: "your_campfire_api_token"
12
+ room: "developers"
13
+ notify: false
@@ -18,4 +18,5 @@ Gem::Specification.new do |gem|
18
18
  gem.add_dependency "chef"
19
19
  gem.add_dependency "httparty"
20
20
  gem.add_dependency "app_conf"
21
+ gem.add_dependency "tinder"
21
22
  end
@@ -1,6 +1,7 @@
1
1
  require "knife_santoku/version"
2
2
  require "knife_santoku/notifier"
3
3
  require 'knife_santoku/notification/hipchat_notifier'
4
+ require 'knife_santoku/notification/campfire_notifier'
4
5
  require "knife_santoku/callback"
5
6
  require "knife_santoku/monkey_patches/knife"
6
7
  require "knife_santoku/application"
@@ -0,0 +1,24 @@
1
+ require 'tinder'
2
+
3
+ module KnifeSantoku
4
+ module Notification
5
+ class CampfireNotifier
6
+
7
+ def initialize(config)
8
+
9
+ @subdomain = config["campfire"]["subdomain"]
10
+ @token = config["campfire"]["token"]
11
+ @room = config["campfire"]["room"]
12
+ @notify = 0 if config["campfire"]["notify"] == false
13
+ @notify = 1 if config["campfire"]["notify"] == true
14
+ end
15
+
16
+ def notify(msg)
17
+ campfire = Tinder::Campfire.new "#{@subdomain}" , :token => "#{@token}"
18
+ room = campfire.find_room_by_name(@room)
19
+ room.speak(msg) if @notify
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -4,7 +4,7 @@ module KnifeSantoku
4
4
  def initialize(config)
5
5
  @config = config
6
6
 
7
- @notifiers = { :hipchat => ::KnifeSantoku::Notification::HipchatNotifier }
7
+ @notifiers = { :hipchat => ::KnifeSantoku::Notification::HipchatNotifier, :campfire => ::KnifeSantoku::Notification::CampfireNotifier }
8
8
 
9
9
  # iterate through our internal folder and our external folder for notification classes
10
10
  end
@@ -1,3 +1,3 @@
1
1
  module KnifeSantoku
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-santoku
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-15 00:00:00.000000000 Z
12
+ date: 2012-11-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: tinder
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  description: A drop in replacement for knife that helps you build out processes around
63
79
  Chef
64
80
  email:
@@ -83,6 +99,7 @@ files:
83
99
  - lib/knife_santoku/application.rb
84
100
  - lib/knife_santoku/callback.rb
85
101
  - lib/knife_santoku/monkey_patches/knife.rb
102
+ - lib/knife_santoku/notification/campfire_notifier.rb
86
103
  - lib/knife_santoku/notification/hipchat_notifier.rb
87
104
  - lib/knife_santoku/notifier.rb
88
105
  - lib/knife_santoku/version.rb