capistrano_colors 0.2.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest CHANGED
@@ -1,5 +1,6 @@
1
- capistrano_colors.gemspec
1
+ lib/capistrano/configuration.rb
2
+ lib/capistrano/logger.rb
2
3
  lib/capistrano_colors.rb
3
- Manifest
4
4
  Rakefile
5
5
  README.rdoc
6
+ Manifest
data/README.rdoc CHANGED
@@ -9,12 +9,86 @@ When capistrano_colors is included in your deploy.rb capistrano output gets nice
9
9
 
10
10
  == USAGE
11
11
 
12
- In your config/deploy.rb
12
+ === Per project installation
13
+
14
+ In config/deploy.rb
13
15
 
14
16
  require 'capistrano_colors'
15
17
 
18
+
19
+ === System wide installation
20
+
21
+ Create/Modify you ~/.caprc with the following
22
+
23
+ require 'capistrano_colors'
24
+
25
+
26
+ == Creating you own color matchers
27
+
28
+ Create a custom colormatcher with the colorize command.
29
+ colorize can be called with a hash of options or an array of hashes.
30
+
31
+ The options hash should have the following fields.
32
+
33
+ * :match - A regular expression of the row to match.
34
+ * :color - The color we want on the matching rows.
35
+ * :prio - What prio should this rule have (higher = more prio)
36
+ * :attribute - Special effect (:underline, :reverse, :blink)
37
+ * :level - Specify if this matcher should be bound to some of capistranos log levels (info,debug,...)
38
+
39
+ === match
40
+ :match is a simple regular expression for the row that should be matched.
41
+
42
+ === color
43
+ :color can have the following values:
44
+
45
+ * :hide (hides the row completely)
46
+ * :none
47
+ * :black
48
+ * :red
49
+ * :green
50
+ * :yellow
51
+ * :blue
52
+ * :magenta
53
+ * :cyan
54
+ * :white
55
+
56
+ === prio
57
+ :prio is a Integer defining the matchers prio.
58
+
59
+ === attribute
60
+ :attribute can have the following values:
61
+
62
+ * :bright
63
+ * :dim
64
+ * :underscore
65
+ * :blink
66
+ * :reverse
67
+ * :hidden
68
+
69
+ == Example
70
+
71
+ require 'capistrano_colors'
72
+
73
+ capistrano_color_matchers = [
74
+ { :match => /command finished/, :color => :hide, :prio => 10 },
75
+ { :match => /executing command/, :color => :blue, :prio => 10, :attribute => :underscore },
76
+ { :match => /^transaction: commit$/, :color => :magenta, :prio => 10, :attribute => :blink },
77
+ { :match => /git/, :color => :white, :prio => 20, :attribute => :reverse },
78
+ ]
79
+
80
+ colorize( capistrano_color_matchers )
81
+
82
+
16
83
  == CHANGES
17
84
 
85
+ v.0.5.0
86
+
87
+ - Total rewrite and that is why we have a big version bump ;)
88
+ - Moved modules/classes to separate files.
89
+ - Wrote a simple color-regexp-match-engine.
90
+ - Possible to make you own custom color-matchers.
91
+
18
92
  v.0.2.1
19
93
 
20
94
  - Bugfix for some err: messages that where not printed in red.
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('capistrano_colors', '0.2.1') do |p|
5
+ Echoe.new('capistrano_colors', '0.5.0') do |p|
6
6
  p.description = "Simple gem to display colors in capistrano output."
7
7
  p.url = "http://github.com/stjernstrom/capistrano_colors"
8
8
  p.author = "Mathias Stjernstrom"
@@ -2,21 +2,23 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{capistrano_colors}
5
- s.version = "0.2.1"
5
+ s.version = "0.5.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Mathias Stjernstrom"]
9
- s.date = %q{2008-12-23}
9
+ s.cert_chain = ["/Users/mathias/.ssh/gem-public_cert.pem"]
10
+ s.date = %q{2009-01-04}
10
11
  s.description = %q{Simple gem to display colors in capistrano output.}
11
12
  s.email = %q{mathias@globalinn.com}
12
- s.extra_rdoc_files = ["lib/capistrano_colors.rb", "README.rdoc"]
13
- s.files = ["capistrano_colors.gemspec", "lib/capistrano_colors.rb", "Manifest", "Rakefile", "README.rdoc"]
13
+ s.extra_rdoc_files = ["lib/capistrano/configuration.rb", "lib/capistrano/logger.rb", "lib/capistrano_colors.rb", "README.rdoc"]
14
+ s.files = ["lib/capistrano/configuration.rb", "lib/capistrano/logger.rb", "lib/capistrano_colors.rb", "Rakefile", "README.rdoc", "Manifest", "capistrano_colors.gemspec"]
14
15
  s.has_rdoc = true
15
16
  s.homepage = %q{http://github.com/stjernstrom/capistrano_colors}
16
17
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Capistrano_colors", "--main", "README.rdoc"]
17
18
  s.require_paths = ["lib"]
18
19
  s.rubyforge_project = %q{capistranocolor}
19
20
  s.rubygems_version = %q{1.3.1}
21
+ s.signing_key = %q{/Users/mathias/.ssh/gem-private_key.pem}
20
22
  s.summary = %q{Simple gem to display colors in capistrano output.}
21
23
 
22
24
  if s.respond_to? :specification_version then
@@ -0,0 +1,65 @@
1
+ module Capistrano
2
+ class Configuration
3
+
4
+ # Add custom colormatchers
5
+ #
6
+ # Passing a hash or a array of hashes with custom colormatchers.
7
+ #
8
+ # Add the following to your deploy.rb or in your ~/.caprc
9
+ #
10
+ # == Example:
11
+ #
12
+ # require 'capistrano_colors'
13
+ #
14
+ # capistrano_color_matchers = [
15
+ # { :match => /command finished/, :color => :hide, :prio => 10 },
16
+ # { :match => /executing command/, :color => :blue, :prio => 10, :attribute => :underscore },
17
+ # { :match => /^transaction: commit$/, :color => :magenta, :prio => 10, :attribute => :blink },
18
+ # { :match => /git/, :color => :white, :prio => 20, :attribute => :reverse },
19
+ # ]
20
+ #
21
+ # colorize( capistrano_color_matchers )
22
+ #
23
+ # You can call colorize multiple time with either a hash or an array of hashes multiple times.
24
+ #
25
+ # == Colors:
26
+ #
27
+ # :color can have the following values:
28
+ #
29
+ # * :hide (hides the row completely)
30
+ # * :none
31
+ # * :black
32
+ # * :red
33
+ # * :green
34
+ # * :yellow
35
+ # * :blue
36
+ # * :magenta
37
+ # * :cyan
38
+ # * :white
39
+ #
40
+ # == Attributes:
41
+ #
42
+ # :attribute can have the following values:
43
+ #
44
+ # * :bright
45
+ # * :dim
46
+ # * :underscore
47
+ # * :blink
48
+ # * :reverse
49
+ # * :hidden
50
+ #
51
+ #
52
+ def colorize(options)
53
+
54
+ if options.class == Array
55
+ options.each do |opt|
56
+ Capistrano::Logger.add_color_matcher( opt )
57
+ end
58
+ else
59
+ Capistrano::Logger.add_color_matcher( options )
60
+
61
+ end
62
+ end
63
+
64
+ end
65
+ end
@@ -0,0 +1,70 @@
1
+ module Capistrano
2
+ class Logger
3
+
4
+ CAP_COLORS = {
5
+ :none => "0",
6
+ :black => "30",
7
+ :red => "31",
8
+ :green => "32",
9
+ :yellow => "33",
10
+ :blue => "34",
11
+ :magenta => "35",
12
+ :cyan => "36",
13
+ :white => "37"
14
+ }
15
+
16
+ CAP_ATTRIBUTES = {
17
+ :bright => 1,
18
+ :dim => 2,
19
+ :underscore => 4,
20
+ :blink => 5,
21
+ :reverse => 7,
22
+ :hidden => 8
23
+ }
24
+
25
+ @@color_matchers = []
26
+
27
+ alias_method :org_log, :log
28
+
29
+ def log(level, message, line_prefix=nil) #:nodoc:
30
+
31
+ color = :none
32
+ attribute = nil
33
+
34
+ # Sort matchers in reverse order so we can break if we found a match.
35
+ @@sorted_color_matchers ||= @@color_matchers.sort_by { |i| -i[:prio] }
36
+
37
+ @@sorted_color_matchers.each do |filter|
38
+
39
+ if (filter[:level] == level || filter[:level].nil?)
40
+ if message =~ filter[:match]
41
+ color = filter[:color]
42
+ attribute = filter[:attribute]
43
+ message = filter[:prepend] + message unless filter[:prepend].nil?
44
+ break
45
+ end
46
+ end
47
+
48
+ end
49
+
50
+ if color != :hide
51
+ current_color = CAP_COLORS[color]
52
+ current_attribute = CAP_ATTRIBUTES[attribute]
53
+ line_prefix = colorize(line_prefix.to_s, current_color, current_attribute) unless line_prefix.nil?
54
+ org_log(level, colorize(message, current_color, current_attribute), line_prefix=nil)
55
+ end
56
+
57
+ end
58
+
59
+ def self.add_color_matcher( options ) #:nodoc:
60
+ @@color_matchers.push( options )
61
+ end
62
+
63
+ def colorize(message, color, attribute, nl = "\n")
64
+ attribute = "#{attribute};" if attribute
65
+ "\e[#{attribute}#{color}m" + message.strip + "\e[0m#{nl}"
66
+ end
67
+
68
+ end
69
+
70
+ end
@@ -1,46 +1,19 @@
1
- puts "\e[36m == capistrano_colors loaded ==\e[0m"
1
+ puts "\n\e[36m == capistrano_colors loaded ==\e[0m\n\n"
2
2
 
3
- module Capistrano
4
- class Logger
3
+ dir = File.dirname(__FILE__)
5
4
 
6
- CC_STD = "0"
7
- CC_RED = "31"
8
- CC_GREEN = "32"
9
- CC_YELLOW = "33"
10
- CC_BLUE = "34"
5
+ require dir + '/capistrano/configuration'
6
+ require dir + '/capistrano/logger'
11
7
 
12
- def colorize(message, color, nl = "\n")
13
- "\e[#{color}m" + message.strip + "\e[0m#{nl}"
14
- end
8
+ # DEBUG
9
+ Capistrano::Logger.add_color_matcher({ :match => /executing `.*/, :color => :green, :level => 2, :prio => -10, :prepend => "== Currently " })
10
+ Capistrano::Logger.add_color_matcher({ :match => /.*/, :color => :yellow, :level => 2, :prio => -20 })
15
11
 
16
- def debug(message, line_prefix=nil)
17
- if message =~ /executing `.*/
18
- log(DEBUG, colorize("== Currently " + message, CC_GREEN), line_prefix)
19
- else
20
- log(DEBUG, colorize(message, CC_YELLOW), line_prefix)
21
- end
22
- end
12
+ # INFO
13
+ Capistrano::Logger.add_color_matcher({ :match => /.*out\] (fatal:|ERROR:).*/, :color => :red, :level => 1, :prio => -10 })
14
+ Capistrano::Logger.add_color_matcher({ :match => /Permission denied/, :color => :red, :level => 1, :prio => -20 })
15
+ Capistrano::Logger.add_color_matcher({ :match => /sh: .+: command not found/, :color => :magenta, :level => 1, :prio => -30 })
23
16
 
24
- def info(message, line_prefix=nil)
25
- if message =~ /.*out\] (fatal:|ERROR:).*/ || message =~ /Permission denied/
26
- color = CC_RED
27
- else
28
- color = CC_STD
29
- end
30
- log(INFO, colorize(message,color), line_prefix)
31
- end
32
-
33
- def important(message, line_prefix=nil)
34
- if line_prefix =~ /^err ::/
35
- color = CC_RED
36
- else
37
- color = CC_BLUE
38
- end
39
- log(IMPORTANT, colorize(message, color), line_prefix) if !message.strip.empty?
40
- end
41
-
42
- def trace(message, line_prefix=nil)
43
- log(TRACE, message, line_prefix)
44
- end
45
- end
46
- end
17
+ # IMPORTANT
18
+ Capistrano::Logger.add_color_matcher({ :match => /^err ::/, :color => :red, :level => 0, :prio => -10 })
19
+ Capistrano::Logger.add_color_matcher({ :match => /.*/, :color => :blue, :level => 0, :prio => -20 })
data.tar.gz.sig ADDED
@@ -0,0 +1,4 @@
1
+ Z�4���EY�8��D�.
2
+ ��_��6ڜXT8wq��]���p9l�6U�p]����E�v�P���+��l#67�+r
3
+  \F�m %SF��y����l����G*Yn��j[����!��-śv4�Q0��giV�����;�O��9;�
4
+ �$��{ ~~�\����Ji�p0|�L
metadata CHANGED
@@ -1,15 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano_colors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathias Stjernstrom
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDODCCAiCgAwIBAgIBADANBgkqhkiG9w0BAQUFADBCMRAwDgYDVQQDDAdtYXRo
14
+ aWFzMRkwFwYKCZImiZPyLGQBGRYJZ2xvYmFsaW5uMRMwEQYKCZImiZPyLGQBGRYD
15
+ Y29tMB4XDTA4MTIyMTA3MTEzM1oXDTA5MTIyMTA3MTEzM1owQjEQMA4GA1UEAwwH
16
+ bWF0aGlhczEZMBcGCgmSJomT8ixkARkWCWdsb2JhbGlubjETMBEGCgmSJomT8ixk
17
+ ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL30OXlyee2o
18
+ stQFrTZRtzsAH4wQ/jKIUO43zRTtaHnMKsy8Ga0T2piNN35Qq1yZNlf2fGl3LopI
19
+ w+wLMQYeCjY6fjbTXDGHbaiT3qE/F/RHlv8at29ztpaCQfeL33DGCohrRGYWouD9
20
+ j0wOnPrwHE2fGDqKTYXhgiAIIzmwqn1kcAIzm3V9WRvYE97IDVHvFcMRydbxlGgW
21
+ rHgRvGuBs5jf+rCpGvakoZjDZx3ueF9AphaMun70z2fYWiH3pY3g65tkf5C8JBT5
22
+ HyiHEwCNXu7bMYA2OMA+EGVpHZh/+78XrE+hRvKvHz6TF8pfKiTf/ukEvDWqxHyk
23
+ a9V6BS2FEG8CAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
24
+ BBYEFPuAbY2bxHbIT15IcJcelQii+AoNMA0GCSqGSIb3DQEBBQUAA4IBAQANgGbP
25
+ F9S1YGw38ZwkZX4k9ZuaO87stEewkR+TEQ7R1ptiW8I/bR59hBkl9wuXSC9Ho6B/
26
+ yryfubWJdlLykn32PJsaPUnNEejLSCWtAWNkyGltBxNMhVNEiHuxaxnRqblPHKYE
27
+ fn0zqKANa+mbFtx3SvgkOwEFyCpioEi8DDlFWhb4F4V+a0NGxhI4w7htmT7pG4vc
28
+ TnHw2b9dwzo8dd+ujNcWKHhu6jL9kgB3B5ZuA7S16E1wd1QSPWO/3U35mCg4M+FB
29
+ /+sSKAOKmwvZIG32pl7mMoi3gw9k2LpQiJLrBrMA7KDgwefuPc46/J4uwcK18Byg
30
+ snErBd/zMF/MOW0s
31
+ -----END CERTIFICATE-----
11
32
 
12
- date: 2008-12-23 00:00:00 +01:00
33
+ date: 2009-01-04 00:00:00 +01:00
13
34
  default_executable:
14
35
  dependencies:
15
36
  - !ruby/object:Gem::Dependency
@@ -29,14 +50,18 @@ executables: []
29
50
  extensions: []
30
51
 
31
52
  extra_rdoc_files:
53
+ - lib/capistrano/configuration.rb
54
+ - lib/capistrano/logger.rb
32
55
  - lib/capistrano_colors.rb
33
56
  - README.rdoc
34
57
  files:
35
- - capistrano_colors.gemspec
58
+ - lib/capistrano/configuration.rb
59
+ - lib/capistrano/logger.rb
36
60
  - lib/capistrano_colors.rb
37
- - Manifest
38
61
  - Rakefile
39
62
  - README.rdoc
63
+ - Manifest
64
+ - capistrano_colors.gemspec
40
65
  has_rdoc: true
41
66
  homepage: http://github.com/stjernstrom/capistrano_colors
42
67
  post_install_message:
metadata.gz.sig ADDED
Binary file