icersplicer 0.6.8 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/icersplicer +26 -7
  3. data/lib/icersplicer.rb +18 -5
  4. metadata +15 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 889426ecfe9153b4293de8e06333ac4feeaac615
4
- data.tar.gz: 7a2196e1727a5d01ac9964cddf298830f90de887
3
+ metadata.gz: 5b230d59ba3efeebb5a3ebaadde17f54a77ea235
4
+ data.tar.gz: 2b7e2bd69ce17fd94352006e5414a2c280f2b707
5
5
  SHA512:
6
- metadata.gz: 7770195438891c57b9d698452b73f1784f2404cda696f1da5d82eb640e49b732713b516c17ba14dadb6c6e5432605968ddb416123fe2faaaf95491bfc4e73742
7
- data.tar.gz: 383c035caf2233f322aa72accf814429d087dd3c35f8a92172b024ea28b9d74bd0d715c0052680b464263ba8581291cd5d49a02704e05012fe79261c01dea04d
6
+ metadata.gz: f6aedfb1f769f17d80c46f905c9be428fe57626305929e1929070ccfefe766d3c4f8eac98d8563775cee7d66f981170f2ce095150ef9077f79e6c9c6007acbdf
7
+ data.tar.gz: 8da23292ddff84de317c1729224bb707d9e6f805627672c35c10fd9d82d169eaf32284bd8dd7c256560627339a9e475d231c4fcafcf58e1d82efda581cbf379e
data/bin/icersplicer CHANGED
@@ -22,6 +22,16 @@ require File.expand_path(File.join(
22
22
 
23
23
  include Icersplicer
24
24
 
25
+ def reset_screen
26
+ puts "\e[0m\ "
27
+ end
28
+
29
+ trap("INT") {
30
+ puts "Goodbye see you soon!"
31
+ reset_screen
32
+ exit
33
+ }
34
+
25
35
  VERSION = Icersplicer::VERSION::STRING
26
36
 
27
37
  ARGV[0] = "--help" if ARGV[0] == nil
@@ -32,6 +42,7 @@ opts = GetoptLong.new(
32
42
  [ '--linelimit', '-n', GetoptLong::REQUIRED_ARGUMENT],
33
43
  [ '--head', '-3', GetoptLong::REQUIRED_ARGUMENT],
34
44
  [ '--tail', '-4', GetoptLong::REQUIRED_ARGUMENT],
45
+ [ '--followtail', '-5', GetoptLong::REQUIRED_ARGUMENT],
35
46
  [ '--incrementlimit', '-i', GetoptLong::OPTIONAL_ARGUMENT],
36
47
  [ '--inputfile', '-f', GetoptLong::REQUIRED_ARGUMENT],
37
48
  [ '--skiplines', '-s', GetoptLong::OPTIONAL_ARGUMENT],
@@ -57,6 +68,7 @@ opts.each do |opt, arg|
57
68
  --linelimit '-n' INTEGER
58
69
  --head '-3' INTEGER
59
70
  --tail '-4' INTEGER
71
+ --followtail '-5' INTEGER
60
72
  --inputfile '-f' filename
61
73
  --skiplines '-s' LINE NUMBERS 3,5,6
62
74
  --skipblank '-b' NO ARGUMENTS ( Ommit blank lines )
@@ -92,6 +104,9 @@ Written by Brian Hood
92
104
  end
93
105
  when /^--linelimit|^--head/
94
106
  @line_limit = arg.to_i
107
+ when '--followtail'
108
+ @followtail = arg.to_i
109
+ puts "Tail lines: #{@followtail}"
95
110
  when '--incrementlimit'
96
111
  @increment_limit = arg.to_i
97
112
  when '--inputfile'
@@ -119,6 +134,15 @@ Written by Brian Hood
119
134
  end
120
135
  end
121
136
 
137
+ inputfile = @inputfile
138
+ outputfile = @outputfile
139
+ grep = @grep
140
+
141
+ if instance_variable_defined?("@followtail")
142
+ lines = @followtail
143
+ followtail(inputfile, lines)
144
+ end
145
+
122
146
  if instance_variable_defined?("@search")
123
147
  search = @search
124
148
  if instance_variable_defined?("@replace")
@@ -130,7 +154,6 @@ if instance_variable_defined?("@search")
130
154
  end
131
155
  end
132
156
 
133
-
134
157
  unless instance_variable_defined?("@line_offset")
135
158
  lineoffset = 0
136
159
  else
@@ -152,10 +175,6 @@ end
152
175
  linecounter = 0
153
176
  quietmode = false | @quiet_mode
154
177
 
155
- inputfile = @inputfile
156
- outputfile = @outputfile
157
- grep = @grep
158
-
159
178
  if @countlines == true
160
179
  countlines(inputfile)
161
180
  exit
@@ -208,8 +227,8 @@ begin
208
227
  rescue Errno::EPIPE
209
228
  puts "Closing session due to broken pipe"
210
229
  end
211
- closefile if instance_variable_defined?("@exp")
230
+ closefile
212
231
  stats(inputfile, outputfile)
213
232
  timer.watch('stop')
214
233
  timer.print_stats
215
- puts "\e[0m\ "
234
+ reset_screen
data/lib/icersplicer.rb CHANGED
@@ -8,13 +8,14 @@
8
8
  #
9
9
  #
10
10
  ########################################################################
11
+ require 'file-tail'
11
12
 
12
13
  module Icersplicer
13
14
 
14
15
  module VERSION #:nodoc:
15
16
  MAJOR = 0
16
- MINOR = 6
17
- TINY = 8
17
+ MINOR = 7
18
+ TINY = 0
18
19
  CODENAME = "Ice Climber !"
19
20
  STRING = [MAJOR, MINOR, TINY].join('.')
20
21
  end
@@ -32,7 +33,16 @@ module Icersplicer
32
33
  "purple" => 5,
33
34
  "cyan" => 6,
34
35
  "white" => 7}
35
-
36
+
37
+ def followtail(filename, number)
38
+ File::Tail::Logfile.open(filename) do |log|
39
+ log.interval = 3
40
+ log.backward(10)
41
+ log.backward(number).tail { |line| puts line }
42
+ end
43
+ exit
44
+ end
45
+
36
46
  def load_keywords(file)
37
47
  keys = Hash.new
38
48
  linenum = 0
@@ -157,8 +167,11 @@ module Icersplicer
157
167
  end
158
168
 
159
169
  def closefile
160
- @@exp.close
161
- puts "Closing file: #{outputfile}"
170
+ begin
171
+ @@exp.close
172
+ puts "Closing file"
173
+ rescue NoMethodError
174
+ end
162
175
  end
163
176
 
164
177
  def processdata(data, outputfile, quietmode)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: icersplicer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.8
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Hood
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.0.5
27
+ - !ruby/object:Gem::Dependency
28
+ name: file-tail
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.0
27
41
  description: Text file manipulation similar to UNIX tools like cat / head / tail
28
42
  email: brianh6854@googlemail.com
29
43
  executables: