lolcat 90.8.8 → 99.9.9
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.
- checksums.yaml +5 -5
- data/lib/lolcat/cat.rb +2 -4
- data/lib/lolcat/lol.rb +21 -10
- data/lib/lolcat/version.rb +1 -1
- data/lolcat.gemspec +1 -0
- data/man/lolcat.6 +100 -0
- metadata +18 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 5b2f2da553496da9167b641f9490b602b7c7ab20939855328e5b11ba576981ac
|
|
4
|
+
data.tar.gz: fb4269af6402efb41734d960e7dc5645d3407e2140a1adcaf9d2346a853d3064
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 836bb75c723ea7c49f4ea1201ab2a301bedc9c61db9a4995d8e7191f15ae4792dc856144bb592dab0dcc167234a968afb997f6b1b3323384eb07f679f5c7189b
|
|
7
|
+
data.tar.gz: 5678cebdb25b01d6115d20fbf8cfdb67a4904d1dc715671d40359ddce1ad080d9cd99f45ca062fe92eab3ed6913621ed6c67506eb625ecff31787ade038c9d74
|
data/lib/lolcat/cat.rb
CHANGED
|
@@ -82,7 +82,7 @@ FOOTER
|
|
|
82
82
|
:spread => 8.0,
|
|
83
83
|
:freq => 0.3
|
|
84
84
|
}
|
|
85
|
-
Lol.cat buf
|
|
85
|
+
Lol.cat buf, opts
|
|
86
86
|
puts
|
|
87
87
|
buf.close
|
|
88
88
|
exit 1
|
|
@@ -112,9 +112,7 @@ FOOTER
|
|
|
112
112
|
$stdout.write(line)
|
|
113
113
|
end
|
|
114
114
|
else
|
|
115
|
-
|
|
116
|
-
$stdout.write(fd.read(8192))
|
|
117
|
-
end
|
|
115
|
+
IO.copy_stream(fd, $stdout)
|
|
118
116
|
end
|
|
119
117
|
end
|
|
120
118
|
rescue Errno::ENOENT
|
data/lib/lolcat/lol.rb
CHANGED
|
@@ -27,7 +27,6 @@ require "lolcat/version"
|
|
|
27
27
|
require 'paint'
|
|
28
28
|
|
|
29
29
|
module Lol
|
|
30
|
-
STRIP_ANSI = Regexp.compile '\e\[[\d;]*[m|K]', nil
|
|
31
30
|
@paint_detected_mode = Paint.detect_mode
|
|
32
31
|
|
|
33
32
|
def self.rainbow(freq, i)
|
|
@@ -39,18 +38,28 @@ module Lol
|
|
|
39
38
|
|
|
40
39
|
def self.cat(fd, opts={})
|
|
41
40
|
print "\e[?25l" if opts[:animate]
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
while true do
|
|
42
|
+
begin
|
|
43
|
+
buf = fd.sysread(65536)
|
|
44
|
+
rescue EOFError
|
|
45
|
+
break
|
|
46
|
+
end
|
|
47
|
+
buf.force_encoding(fd.external_encoding)
|
|
48
|
+
buf.lines.each do |line|
|
|
49
|
+
opts[:os] += 1
|
|
50
|
+
println(line, opts)
|
|
51
|
+
end
|
|
45
52
|
end
|
|
46
53
|
ensure
|
|
47
|
-
|
|
54
|
+
if STDOUT.tty? then
|
|
55
|
+
print "\e[m\e[?25h\e[?1;5;47;2004l"
|
|
56
|
+
system("stty cooked -nl <&1");
|
|
57
|
+
end
|
|
48
58
|
end
|
|
49
59
|
|
|
50
60
|
def self.println(str, defaults={}, opts={})
|
|
51
61
|
opts.merge!(defaults)
|
|
52
|
-
chomped = str.
|
|
53
|
-
str.gsub! STRIP_ANSI, '' if !str.nil? and ($stdout.tty? or opts[:force])
|
|
62
|
+
chomped = str.sub!(/\n$/, "")
|
|
54
63
|
str.gsub! "\t", " "
|
|
55
64
|
opts[:animate] ? println_ani(str, opts) : println_plain(str, opts)
|
|
56
65
|
puts if chomped
|
|
@@ -61,18 +70,20 @@ module Lol
|
|
|
61
70
|
def self.println_plain(str, defaults={}, opts={})
|
|
62
71
|
opts.merge!(defaults)
|
|
63
72
|
set_mode(opts[:truecolor])
|
|
64
|
-
str.
|
|
73
|
+
str.scan(/((?:\e(?:[ -\/]+.|[\]PX^_][^\a\e]*|\[[0-?]*.|.))*)(.?)/m).each_with_index do |c,i|
|
|
65
74
|
code = rainbow(opts[:freq], opts[:os]+i/opts[:spread])
|
|
66
|
-
print Paint[c, *[ (:black if opts[:invert]), code ].compact ]
|
|
75
|
+
print c[0], Paint[c[1], *[ (:black if opts[:invert]), code ].compact ]
|
|
67
76
|
end
|
|
68
77
|
end
|
|
69
78
|
|
|
70
79
|
def self.println_ani(str, opts={})
|
|
71
80
|
return if str.empty?
|
|
81
|
+
print "\e7"
|
|
72
82
|
(1..opts[:duration]).each do |i|
|
|
73
|
-
print "\
|
|
83
|
+
print "\e8"
|
|
74
84
|
opts[:os] += opts[:spread]
|
|
75
85
|
println_plain(str, opts)
|
|
86
|
+
str.gsub!(/\e\[[0-?]*[@JKPX]/, "")
|
|
76
87
|
sleep 1.0/opts[:speed]
|
|
77
88
|
end
|
|
78
89
|
end
|
data/lib/lolcat/version.rb
CHANGED
data/lolcat.gemspec
CHANGED
|
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
|
|
|
14
14
|
s.add_development_dependency "rake"
|
|
15
15
|
s.add_dependency "paint", "~> 2.0.0"
|
|
16
16
|
s.add_dependency "trollop", "~> 2.1.2"
|
|
17
|
+
s.add_dependency "manpages", "~> 0.6.1"
|
|
17
18
|
|
|
18
19
|
s.files = `git ls-files`.split("\n")
|
|
19
20
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
data/man/lolcat.6
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
.TH LOLCAT 6 "June 11, 2017"
|
|
2
|
+
.\" Please adjust this date whenever revising the manpage.
|
|
3
|
+
.SH NAME
|
|
4
|
+
lolcat \- rainbow coloring effect for text console display
|
|
5
|
+
|
|
6
|
+
.SH SYNOPSIS
|
|
7
|
+
.B lolcat
|
|
8
|
+
.RI [ options ] " " [ files ] " " ...
|
|
9
|
+
|
|
10
|
+
.SH DESCRIPTION
|
|
11
|
+
This manual page documents briefly the
|
|
12
|
+
.B lolcat
|
|
13
|
+
command.
|
|
14
|
+
.PP
|
|
15
|
+
\fBlolcat\fP is a program that concatenates files, or standard input, to
|
|
16
|
+
standard output (like the generic \fBcat\fP), and adds rainbow coloring to it.
|
|
17
|
+
|
|
18
|
+
.SH OPTIONS
|
|
19
|
+
|
|
20
|
+
.TP
|
|
21
|
+
\fB\-p\fP \fIX\fP, \fB\-\-spread=\fIX\fP
|
|
22
|
+
Inclination of the rainbow stripes
|
|
23
|
+
.br
|
|
24
|
+
(character widths per line hight; high values (>1000) give almost horizonal stripes, low values (0.1) almost vertical ones; default: 3.0).
|
|
25
|
+
.TP
|
|
26
|
+
\fB\-F\fP \fIX\fP, \fB\-\-freq=\fIX\fP
|
|
27
|
+
Frequency of the rainbow effect.
|
|
28
|
+
.br
|
|
29
|
+
(low values around 0.0001 give almost monochromous screens; default: 0.1).
|
|
30
|
+
.TP
|
|
31
|
+
\fB\-S\fP \fIX\fP, \fB\-\-seed=\fIX\fP
|
|
32
|
+
Initial value for the random number generator; 0 means automatic.
|
|
33
|
+
.br
|
|
34
|
+
(default: 0).
|
|
35
|
+
.TP
|
|
36
|
+
\fB\-a\fP, \fB\-\-animate\fP
|
|
37
|
+
Fade every line through an animation before printing the next one.
|
|
38
|
+
.TP
|
|
39
|
+
\fB\-d\fP \fIX\fP, \fB\-\-duration=\fIX\fP
|
|
40
|
+
Duration of the animation.
|
|
41
|
+
.br
|
|
42
|
+
(number of steps before showing next line; default: 12)
|
|
43
|
+
.TP
|
|
44
|
+
\fB\-s\fP \fIX\fP, \fB\-\-speed=\fIX\fP
|
|
45
|
+
Speed of the animation.
|
|
46
|
+
.br
|
|
47
|
+
(frame rate, ie. number of steps per second; default: 20)
|
|
48
|
+
.TP
|
|
49
|
+
\fB\-i\fP, \fB\-\-invert\fP
|
|
50
|
+
Inverts the background and foreground colors.
|
|
51
|
+
.TP
|
|
52
|
+
\fB\-t\fP, \fB\-\-truecolor\fP
|
|
53
|
+
Enables 24-bit truecolor mode.
|
|
54
|
+
.TP
|
|
55
|
+
\fB\-f\fP, \fB\-\-force\fP
|
|
56
|
+
Force color even when stdout is not a tty.
|
|
57
|
+
.TP
|
|
58
|
+
.B \-v, \-\-version
|
|
59
|
+
Shows lolcat version.
|
|
60
|
+
.TP
|
|
61
|
+
.B \-h, \-\-help
|
|
62
|
+
Shows options summary.
|
|
63
|
+
|
|
64
|
+
.SH EXAMPLES
|
|
65
|
+
|
|
66
|
+
Typical combinations of \fBlolcat\fP include other programs that generate text:
|
|
67
|
+
.br
|
|
68
|
+
.br
|
|
69
|
+
Large colorful words can be written like this:
|
|
70
|
+
|
|
71
|
+
.IP
|
|
72
|
+
.EX
|
|
73
|
+
echo "KTHXBAI" | toilet | lolcat
|
|
74
|
+
.EE
|
|
75
|
+
.
|
|
76
|
+
.P
|
|
77
|
+
|
|
78
|
+
Cows are popular, come in all colors, and tell random epigrams:
|
|
79
|
+
|
|
80
|
+
.IP
|
|
81
|
+
.EX
|
|
82
|
+
fortune | cowsay | lolcat \-a
|
|
83
|
+
.EE
|
|
84
|
+
.
|
|
85
|
+
.P
|
|
86
|
+
|
|
87
|
+
.SH SEE ALSO
|
|
88
|
+
.BR cat (1),
|
|
89
|
+
.BR toilet (1),
|
|
90
|
+
.BR fortune (6),
|
|
91
|
+
.BR cowsay (6)
|
|
92
|
+
.br
|
|
93
|
+
.SH AUTHOR
|
|
94
|
+
lolcat was written by Moe <moe@busyloop.net>.
|
|
95
|
+
.PP
|
|
96
|
+
This manual page was originally written by chrysn <chrysn@fsfe.org>,
|
|
97
|
+
for the Debian project.
|
|
98
|
+
.br
|
|
99
|
+
Very quickly revamped by Mathieu Aubin <mathieu@zeroserieux.com> to
|
|
100
|
+
include as part of official code repository.
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lolcat
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 99.9.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Moe
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-04-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: 2.1.2
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: manpages
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 0.6.1
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 0.6.1
|
|
55
69
|
description: Rainbows and unicorns!
|
|
56
70
|
email:
|
|
57
71
|
- moe@busyloop.net
|
|
@@ -72,6 +86,7 @@ files:
|
|
|
72
86
|
- lib/lolcat/lol.rb
|
|
73
87
|
- lib/lolcat/version.rb
|
|
74
88
|
- lolcat.gemspec
|
|
89
|
+
- man/lolcat.6
|
|
75
90
|
homepage: https://github.com/busyloop/lolcat
|
|
76
91
|
licenses: []
|
|
77
92
|
metadata: {}
|
|
@@ -91,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
91
106
|
version: '0'
|
|
92
107
|
requirements: []
|
|
93
108
|
rubyforge_project:
|
|
94
|
-
rubygems_version: 2.
|
|
109
|
+
rubygems_version: 2.7.3
|
|
95
110
|
signing_key:
|
|
96
111
|
specification_version: 4
|
|
97
112
|
summary: Okay, no unicorns. But rainbows!!
|