color-tail 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bin/ctail +5 -0
  2. data/color-tail.rb +39 -0
  3. metadata +80 -0
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'color-tail'
5
+ exit(main(ARGV))
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+ require "rubygems"
3
+ require "eventmachine"
4
+ require "eventmachine-tail"
5
+ require 'term/ansicolor'
6
+ require 'digest/sha1'
7
+
8
+
9
+ AVAILABLE_COLORS = Term::ANSIColor::ATTRIBUTES.select {|k,v| v >= 30 and k.to_s !~ /white/ }.map(&:first)
10
+ SQUARE = %w{∎ ❚ ❙ ❘ } # TODO pick one
11
+
12
+ # TODO / FIXME test this
13
+ class C
14
+ extend ::Term::ANSIColor
15
+ def self.pref(color, str)
16
+ "#{SQUARE.first}#{self.send color}#{str}#{clear}#{SQUARE.first}"
17
+ end
18
+ end
19
+
20
+ # TODO use trollop
21
+ def main(args)
22
+ if args.length == 0
23
+ puts "Usage: #{$0} <path> [path2] [...]"
24
+ return 1
25
+ end
26
+
27
+ EventMachine.run do
28
+ args.each do |path|
29
+
30
+ f_hash = Digest::SHA1.hexdigest(path)[0..6]
31
+ color_prefix = C.pref(AVAILABLE_COLORS[srand().to_s[0].to_i], f_hash)
32
+ puts "#{path} marked with #{color_prefix}"
33
+
34
+ EventMachine::file_tail(path) do |filetail, line|
35
+ puts "#{color_prefix} #{line}"
36
+ end
37
+ end
38
+ end
39
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: color-tail
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Łukasz Korecki
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-10 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: eventmachine
16
+ requirement: &2153595780 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2153595780
25
+ - !ruby/object:Gem::Dependency
26
+ name: eventmachine-tail
27
+ requirement: &2153595340 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2153595340
36
+ - !ruby/object:Gem::Dependency
37
+ name: term-ansicolor
38
+ requirement: &2153594920 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2153594920
47
+ description: Use it like tail -f to watch a group of files, but with added color codes
48
+ email: lukasz@coffeesounds.com
49
+ executables:
50
+ - ctail
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - color-tail.rb
55
+ - bin/ctail
56
+ homepage:
57
+ licenses: []
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - .
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ requirements: []
75
+ rubyforge_project:
76
+ rubygems_version: 1.8.15
77
+ signing_key:
78
+ specification_version: 3
79
+ summary: Just like tail -f but with colors
80
+ test_files: []