color-tail 0.1.0

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.
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: []