icersplicer 1.0.0 → 1.0.6
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 +4 -4
- data/bin/icersplicer +16 -4
- data/lib/globutils.rb +69 -0
- data/lib/icersplicer.rb +18 -17
- data/lib/version.rb +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 828fde885629227694e9908fbc47fdf5c19fdb04
|
4
|
+
data.tar.gz: 7cddde3b73f6932e7b54a6f766ab3418bc2a6895
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd69d5421d3d4d20d1f77d7499339046192bc1ac8bb3f72b3bb773e0a0945d9da3973661693e1780b5e6328c0f556565bb65b4e5ff720b231565bc606a6622c5
|
7
|
+
data.tar.gz: 02808a1982b5022f9fdaf56c53e2cd8ce9147c8d4f49b37569f74e3a21bc70719052f7f92086babfa97bce6b9d807d984fda5527b5b51d5c2578d86a39d612fb
|
data/bin/icersplicer
CHANGED
@@ -17,6 +17,9 @@ require 'getoptlong'
|
|
17
17
|
require 'walltime'
|
18
18
|
require 'pp'
|
19
19
|
|
20
|
+
require File.expand_path(File.join(
|
21
|
+
File.dirname(__FILE__),
|
22
|
+
"../lib/globutils.rb"))
|
20
23
|
require File.expand_path(File.join(
|
21
24
|
File.dirname(__FILE__),
|
22
25
|
"../lib/icersplicer.rb"))
|
@@ -24,6 +27,7 @@ require File.expand_path(File.join(
|
|
24
27
|
File.dirname(__FILE__),
|
25
28
|
"../lib/version.rb"))
|
26
29
|
|
30
|
+
include GlobUtils
|
27
31
|
include Icersplicer
|
28
32
|
|
29
33
|
trap("INT") {
|
@@ -199,9 +203,11 @@ if @countlines == true
|
|
199
203
|
end
|
200
204
|
|
201
205
|
inputfile.split(",").each {|f|
|
202
|
-
unless
|
203
|
-
|
204
|
-
|
206
|
+
unless f =~ FILE_EXT_REGEXP
|
207
|
+
unless File.exist?("#{f}")
|
208
|
+
raise ArgumentError, "Input filename #{f} / location doesn't exist... ?"
|
209
|
+
exit
|
210
|
+
end
|
205
211
|
end
|
206
212
|
}
|
207
213
|
|
@@ -211,7 +217,13 @@ unless instance_variable_defined?("@nostats")
|
|
211
217
|
timer.watch('start')
|
212
218
|
end
|
213
219
|
begin
|
214
|
-
|
220
|
+
# Regular file / glob mask processor
|
221
|
+
filenames = joinfilenames(buildfilelist(inputfile))
|
222
|
+
# Iterator for file / file list
|
223
|
+
filenames.split(",").each {|f|
|
224
|
+
linecounter = 0
|
225
|
+
ice.reset_screen
|
226
|
+
puts "> Filename: #{f} <"
|
215
227
|
File.open(f) {|n|
|
216
228
|
n.each_line {|data|
|
217
229
|
data_orig = data.clone
|
data/lib/globutils.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'pp'
|
2
|
+
|
3
|
+
module GlobUtils
|
4
|
+
|
5
|
+
=begin
|
6
|
+
|
7
|
+
Glob Example
|
8
|
+
|
9
|
+
filenames = "/home/brian/Projects/icersplicer/bin/icersplicer,/home/brian/Projects/icersplicer/lib/version.rb,/home/brian/Projects/threatmonitor/*.rb,/home/brian/Projects/Walltime/*"
|
10
|
+
files = buildfilelist(filenames)
|
11
|
+
|
12
|
+
=end
|
13
|
+
|
14
|
+
FILE_EXT_REGEXP = /\/*.([a-z]|[A-Z])+$/
|
15
|
+
FILE_WILDCARD_REGEXP = /\*.([a-z]|[A-Z])+$/
|
16
|
+
@@debug = 0
|
17
|
+
|
18
|
+
def glob(f)
|
19
|
+
puts "String end: #{f[f.size - 1]}" if @@debug == 1
|
20
|
+
unless f[f.size - 1] == "*"
|
21
|
+
files = Hash.new
|
22
|
+
globcounter = 0
|
23
|
+
fileext = f.split(".")[f.split(".").size - 1] # Extract Extension from string for example .rb
|
24
|
+
fileglob = f.gsub(FILE_EXT_REGEXP, "/**/*.#{fileext}").gsub("/*/", "/") # Match to find anything file extension / replace Glob using fileext
|
25
|
+
begin
|
26
|
+
# Send created glob into Dir.glob
|
27
|
+
Dir.glob(fileglob) {|n|
|
28
|
+
files.update({globcounter => n})
|
29
|
+
globcounter += 1
|
30
|
+
}
|
31
|
+
rescue
|
32
|
+
raise ArgumentError, "Invalid Glob"
|
33
|
+
end
|
34
|
+
return files
|
35
|
+
else
|
36
|
+
raise ArgumentError, "Please specify file extension for glob i.e *.html"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def joinfilenames(rollfiles)
|
41
|
+
filenames = String.new
|
42
|
+
rollfiles.each {|n|
|
43
|
+
filenames << "#{n[1]},"
|
44
|
+
}
|
45
|
+
filenames.gsub!(%r=,$=, "")
|
46
|
+
end
|
47
|
+
|
48
|
+
def buildfilelist(inputfile)
|
49
|
+
rollfiles = Hash.new
|
50
|
+
rollcounter = 0
|
51
|
+
inputfile.split(",").each {|f|
|
52
|
+
puts "Filename: #{f}" if @@debug == 1
|
53
|
+
unless f =~ FILE_WILDCARD_REGEXP
|
54
|
+
rollfiles.update({rollcounter => f})
|
55
|
+
rollcounter += 1
|
56
|
+
puts "Regular File" if @@debug == 1
|
57
|
+
else
|
58
|
+
puts "Glob File Mask" if @@debug == 1
|
59
|
+
g = glob(f)
|
60
|
+
g.each {|n|
|
61
|
+
rollfiles.update({rollcounter => n[1]})
|
62
|
+
rollcounter += 1
|
63
|
+
}
|
64
|
+
end
|
65
|
+
}
|
66
|
+
return rollfiles
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
data/lib/icersplicer.rb
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
########################################################################
|
11
11
|
require 'file-tail'
|
12
12
|
|
13
|
+
|
13
14
|
module Icersplicer
|
14
15
|
|
15
16
|
class FileProcessor
|
@@ -79,9 +80,9 @@ module Icersplicer
|
|
79
80
|
end
|
80
81
|
|
81
82
|
def text_highlighter(text)
|
82
|
-
|
83
|
-
unless
|
84
|
-
|
83
|
+
keys ||= load_keywords("#{@keywordsfile}")
|
84
|
+
unless keys.class == Hash
|
85
|
+
keys = {0 => "Ln:",
|
85
86
|
1 => "SELECT",
|
86
87
|
2 => "CREATE TABLE",
|
87
88
|
3 => "UPDATE",
|
@@ -89,7 +90,7 @@ module Icersplicer
|
|
89
90
|
5 => "INSERT"}
|
90
91
|
end
|
91
92
|
cpicker = [2,3,4,1,7,5,6] # Just a selection of colours
|
92
|
-
|
93
|
+
keys.each {|n|
|
93
94
|
if n[1].split("##")[1] == nil
|
94
95
|
text.gsub!("#{n[1]}", "\e[4;3#{cpicker[rand(cpicker.size)]}m#{n[1]}\e[0m\ \e[0;32m")
|
95
96
|
else
|
@@ -122,20 +123,20 @@ module Icersplicer
|
|
122
123
|
skip_lines = Hash.new
|
123
124
|
skipcounter = 0
|
124
125
|
filter.to_s.split(",").each {|n|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
end
|
134
|
-
min.upto(max) {|s|
|
135
|
-
skip_lines.update({skipcounter => s}) unless skip_lines[skip_lines.size - 1] == s
|
136
|
-
skipcounter += 1
|
137
|
-
}
|
126
|
+
skip_lines.update({skipcounter => n.to_i})
|
127
|
+
# Allow line ranges
|
128
|
+
min = n.split("-")[0].to_i
|
129
|
+
max = n.split("-")[1].to_i
|
130
|
+
puts "Min: #{min} Max: #{max}" if @debug >= 2
|
131
|
+
unless n.split("-")[1] == nil
|
132
|
+
if min > max
|
133
|
+
raise RangeError, "Range Error: Minimun value can't be more than Maxiumun Range value"
|
138
134
|
end
|
135
|
+
min.upto(max) {|s|
|
136
|
+
skip_lines.update({skipcounter => s}) unless skip_lines[skip_lines.size - 1] == s
|
137
|
+
skipcounter += 1
|
138
|
+
}
|
139
|
+
end
|
139
140
|
skipcounter += 1
|
140
141
|
}
|
141
142
|
return skip_lines
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: icersplicer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Hood
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: walltime
|
@@ -50,6 +50,7 @@ files:
|
|
50
50
|
- examples/files/voc_dump.sql
|
51
51
|
- examples/keywords-ruby.ice
|
52
52
|
- examples/keywords.ice
|
53
|
+
- lib/globutils.rb
|
53
54
|
- lib/icersplicer.rb
|
54
55
|
- lib/version.rb
|
55
56
|
homepage: https://github.com/puppetpies/icersplicer
|