firetower 0.0.3 → 0.0.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 +6 -1
- data/README.org +5 -1
- data/bin/firetower +27 -3
- data/lib/firetower/firetower.conf.erb +5 -1
- data/lib/firetower/plugins/core/growl.rb +42 -0
- data/lib/firetower/plugins/core/init_v1.rb +1 -0
- data/version.txt +1 -1
- metadata +4 -4
- data/.bnsignore +0 -18
data/History.txt
CHANGED
data/README.org
CHANGED
@@ -18,10 +18,14 @@
|
|
18
18
|
|
19
19
|
*** Requirements
|
20
20
|
|
21
|
-
|
21
|
+
Linux
|
22
22
|
- [[http://www.kfish.org/software/xsel/][xsel]]
|
23
23
|
- [[apt:libnotify-bin][libnotify-bin]]
|
24
24
|
|
25
|
+
OS X
|
26
|
+
- growlnotify package from the Extras folder in Growl-1.x.y.dmg
|
27
|
+
- 'Listen for incoming notifications' is checked in the Growl Preference Pane
|
28
|
+
|
25
29
|
*** Install
|
26
30
|
|
27
31
|
: sudo gem install firetower
|
data/bin/firetower
CHANGED
@@ -75,14 +75,14 @@ Main do
|
|
75
75
|
optional
|
76
76
|
attr
|
77
77
|
end
|
78
|
-
keyword :
|
78
|
+
keyword :room do
|
79
79
|
optional
|
80
80
|
attr
|
81
81
|
end
|
82
82
|
|
83
83
|
def selected_room(session)
|
84
|
-
if params[:subdomain].given? && params[:
|
85
|
-
session.accounts[subdomain].rooms[
|
84
|
+
if params[:subdomain].given? && params[:room].given?
|
85
|
+
session.accounts[subdomain].rooms[params[:room].values[0]]
|
86
86
|
else
|
87
87
|
session.default_room
|
88
88
|
end
|
@@ -239,6 +239,10 @@ Main do
|
|
239
239
|
exit_failure unless !config_path.exist? || hl.ask(<<"EOS")
|
240
240
|
A configuration already exists at #{config_path}. Are you sure you want to
|
241
241
|
overwrite it?
|
242
|
+
EOS
|
243
|
+
exit_failure if RUBY_PLATFORM =~ /darwin/ and !system('growlnotify -v') and !(puts(<<"EOS"))
|
244
|
+
You must first install growlnotify from the Growl package installer and ensure
|
245
|
+
'Listen for incoming notifications' is checked in the Preference pane.
|
242
246
|
EOS
|
243
247
|
subdomain = hl.ask <<EOS
|
244
248
|
What is your Campfire subdomain? If your Campfire address is
|
@@ -280,6 +284,26 @@ EOS
|
|
280
284
|
end
|
281
285
|
end
|
282
286
|
|
287
|
+
mode :log do
|
288
|
+
mode :tail do
|
289
|
+
description "Live view of the server log"
|
290
|
+
|
291
|
+
def run
|
292
|
+
exec('tail', '-f', log_path.to_s)
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
mode :view do
|
297
|
+
description "Open server log in $PAGER"
|
298
|
+
|
299
|
+
def run
|
300
|
+
exec(
|
301
|
+
ENV.fetch('PAGER'){ENV.fetch('EDITOR'){'less'}},
|
302
|
+
log_path.to_s)
|
303
|
+
end
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
283
307
|
def run
|
284
308
|
help!
|
285
309
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Firetower
|
2
|
+
module Plugins
|
3
|
+
class GrowlPlugin < Firetower::Session::Listener
|
4
|
+
def startup(session)
|
5
|
+
if session.kind == :server
|
6
|
+
notify("Firetower", "Firetower is vigilantly scanning the treetops")
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def join(session, room)
|
11
|
+
notify("Firetower", "Joined room \"#{room.name}\"", room.name)
|
12
|
+
end
|
13
|
+
|
14
|
+
def leave(session, room)
|
15
|
+
notify("Firetower", "Left room \"#{room.name}\"", room.name)
|
16
|
+
end
|
17
|
+
|
18
|
+
def receive(session, event)
|
19
|
+
case event['type']
|
20
|
+
when "TextMessage"
|
21
|
+
user = event.room.account.users[event['user_id']]
|
22
|
+
notify(user['name'], event['body'], event.room.name)
|
23
|
+
else
|
24
|
+
# NOOP
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def error(session, error)
|
29
|
+
notify("Campfire Error", error.message, 'Error')
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def notify(*args)
|
35
|
+
system('growlnotify', '-t', (args[2].nil? ? args[0] : "#{args[0]} - #{args[2]}"),
|
36
|
+
'-m', args[1],
|
37
|
+
'--image', File.expand_path('campfire-logo-for-fluid.png', File.dirname(__FILE__))) \
|
38
|
+
or raise "Growl notification failed"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 4
|
9
|
+
version: 0.0.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Avdi Grimm
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-08-18 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -151,7 +151,6 @@ extra_rdoc_files:
|
|
151
151
|
- lib/firetower/plugins/core/campfire-logo-for-fluid.png
|
152
152
|
- version.txt
|
153
153
|
files:
|
154
|
-
- .bnsignore
|
155
154
|
- .gitignore
|
156
155
|
- History.txt
|
157
156
|
- README.html
|
@@ -164,6 +163,7 @@ files:
|
|
164
163
|
- lib/firetower/account.rb
|
165
164
|
- lib/firetower/firetower.conf.erb
|
166
165
|
- lib/firetower/plugins/core/campfire-logo-for-fluid.png
|
166
|
+
- lib/firetower/plugins/core/growl.rb
|
167
167
|
- lib/firetower/plugins/core/init_v1.rb
|
168
168
|
- lib/firetower/plugins/core/notify_plugin.rb
|
169
169
|
- lib/firetower/room.rb
|
data/.bnsignore
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# The list of files that should be ignored by Mr Bones.
|
2
|
-
# Lines that start with '#' are comments.
|
3
|
-
#
|
4
|
-
# A .gitignore file can be used instead by setting it as the ignore
|
5
|
-
# file in your Rakefile:
|
6
|
-
#
|
7
|
-
# Bones {
|
8
|
-
# ignore_file '.gitignore'
|
9
|
-
# }
|
10
|
-
#
|
11
|
-
# For a project with a C extension, the following would be a good set of
|
12
|
-
# exclude patterns (uncomment them if you want to use them):
|
13
|
-
# *.[oa]
|
14
|
-
# *~
|
15
|
-
announcement.txt
|
16
|
-
coverage
|
17
|
-
doc
|
18
|
-
pkg
|