ix-cli 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +3 -0
- data/VERSION +1 -0
- data/bin/ix +14 -0
- data/bin/ix-acronym +21 -0
- data/bin/ix-add +8 -0
- data/bin/ix-append +8 -0
- data/bin/ix-arguments +12 -0
- data/bin/ix-array +17 -0
- data/bin/ix-ascii +3 -0
- data/bin/ix-avg +18 -0
- data/bin/ix-aws-pass +17 -0
- data/bin/ix-banner +2 -0
- data/bin/ix-base +24 -0
- data/bin/ix-base64-to-image +6 -0
- data/bin/ix-basename +8 -0
- data/bin/ix-bash-to-md +17 -0
- data/bin/ix-bcat +184 -0
- data/bin/ix-bellgrep +17 -0
- data/bin/ix-bench +9 -0
- data/bin/ix-binary-to-text +8 -0
- data/bin/ix-blackbox +45 -0
- data/bin/ix-blackbox-html-table +86 -0
- data/bin/ix-blamer +23 -0
- data/bin/ix-box +35 -0
- data/bin/ix-box2 +3 -0
- data/bin/ix-box3 +3 -0
- data/bin/ix-camel +17 -0
- data/bin/ix-cat +7 -0
- data/bin/ix-catafter +18 -0
- data/bin/ix-catan +6 -0
- data/bin/ix-chain +13 -0
- data/bin/ix-chars +4 -0
- data/bin/ix-checklist +23 -0
- data/bin/ix-child-math +10 -0
- data/bin/ix-chomp +6 -0
- data/bin/ix-chr +6 -0
- data/bin/ix-class +5 -0
- data/bin/ix-columns +41 -0
- data/bin/ix-combinations +11 -0
- data/bin/ix-command-class +21 -0
- data/bin/ix-commandify +22 -0
- data/bin/ix-commit +9 -0
- data/bin/ix-confirm +47 -0
- data/bin/ix-constants +9 -0
- data/bin/ix-cp +10 -0
- data/bin/ix-crack +163 -0
- data/bin/ix-crap +26 -0
- data/bin/ix-crazy-case +9 -0
- data/bin/ix-create-cluster-nodes +15 -0
- data/bin/ix-csv-to-json +16 -0
- data/bin/ix-day +12 -0
- data/bin/ix-debugging +33 -0
- data/bin/ix-decode-base64 +8 -0
- data/bin/ix-dequote +3 -0
- data/bin/ix-df +15 -0
- data/bin/ix-diagram +47 -0
- data/bin/ix-dirname +5 -0
- data/bin/ix-divide +8 -0
- data/bin/ix-done +11 -0
- data/bin/ix-dot-case +15 -0
- data/bin/ix-downcase +5 -0
- data/bin/ix-dto +39 -0
- data/bin/ix-each +7 -0
- data/bin/ix-edit +21 -0
- data/bin/ix-emails +10 -0
- data/bin/ix-escape +8 -0
- data/bin/ix-extensions +3 -0
- data/bin/ix-file-exists +11 -0
- data/bin/ix-filename +7 -0
- data/bin/ix-files +9 -0
- data/bin/ix-first +6 -0
- data/bin/ix-fish-diagram +47 -0
- data/bin/ix-flip-flop +20 -0
- data/bin/ix-flow +22 -0
- data/bin/ix-format-ruby-hash +61 -0
- data/bin/ix-gauge +86 -0
- data/bin/ix-get-colors +520 -0
- data/bin/ix-gift-exchange +52 -0
- data/bin/ix-glitter +29 -0
- data/bin/ix-grep-join +4 -0
- data/bin/ix-group +21 -0
- data/bin/ix-groups +15 -0
- data/bin/ix-gsub +5 -0
- data/bin/ix-gzip-dir +33 -0
- data/bin/ix-hash +10 -0
- data/bin/ix-hashtag +12 -0
- data/bin/ix-hex2rgb +5 -0
- data/bin/ix-histogram +80 -0
- data/bin/ix-hls +21 -0
- data/bin/ix-html +3 -0
- data/bin/ix-human-time +3 -0
- data/bin/ix-hyphen +9 -0
- data/bin/ix-hypothesis +546 -0
- data/bin/ix-ids +10 -0
- data/bin/ix-image-generate +3 -0
- data/bin/ix-image-to-base64 +9 -0
- data/bin/ix-increments +16 -0
- data/bin/ix-indent +42 -0
- data/bin/ix-indent-to-dot +36 -0
- data/bin/ix-int +5 -0
- data/bin/ix-interpolate +5 -0
- data/bin/ix-ips +4 -0
- data/bin/ix-jd +13 -0
- data/bin/ix-join +15 -0
- data/bin/ix-js-classic-functions +9 -0
- data/bin/ix-json-append +17 -0
- data/bin/ix-json-array-to-records +10 -0
- data/bin/ix-json-format +31 -0
- data/bin/ix-json-grep +16 -0
- data/bin/ix-json-interpolate +17 -0
- data/bin/ix-json-key +40 -0
- data/bin/ix-json-key-value +14 -0
- data/bin/ix-json-keys +12 -0
- data/bin/ix-json-merge +11 -0
- data/bin/ix-json-paths +61 -0
- data/bin/ix-json-paths-pretty +2 -0
- data/bin/ix-json-pp +11 -0
- data/bin/ix-json-query +14 -0
- data/bin/ix-json-records-to-array +13 -0
- data/bin/ix-json-remove-key +15 -0
- data/bin/ix-json-replace-values +35 -0
- data/bin/ix-json-template +267 -0
- data/bin/ix-json-to-csv +19 -0
- data/bin/ix-json-to-dot +5 -0
- data/bin/ix-json-to-html-table +84 -0
- data/bin/ix-json-to-ruby-hash +13 -0
- data/bin/ix-json-to-table +21 -0
- data/bin/ix-json-to-table-2 +22 -0
- data/bin/ix-json-to-xml +1 -0
- data/bin/ix-json-values +13 -0
- data/bin/ix-jsonpp +14 -0
- data/bin/ix-lake +6 -0
- data/bin/ix-lemmatize +17 -0
- data/bin/ix-length +6 -0
- data/bin/ix-linkify +35 -0
- data/bin/ix-linkify-html +70 -0
- data/bin/ix-links +3 -0
- data/bin/ix-llp +247 -0
- data/bin/ix-llp-indent +20 -0
- data/bin/ix-llp2 +224 -0
- data/bin/ix-log +44 -0
- data/bin/ix-make-readable +13 -0
- data/bin/ix-man +14 -0
- data/bin/ix-math +6 -0
- data/bin/ix-maze +3 -0
- data/bin/ix-md5 +7 -0
- data/bin/ix-md5s +3 -0
- data/bin/ix-military +39 -0
- data/bin/ix-morse-to-text +76 -0
- data/bin/ix-mr-robot +13 -0
- data/bin/ix-multiply +8 -0
- data/bin/ix-mv +10 -0
- data/bin/ix-ncsa-date-to-timestamp +27 -0
- data/bin/ix-nested-list +23 -0
- data/bin/ix-nnjj +16 -0
- data/bin/ix-noeol +6 -0
- data/bin/ix-noise +7 -0
- data/bin/ix-normalize +69 -0
- data/bin/ix-numbers +4 -0
- data/bin/ix-numerate +16 -0
- data/bin/ix-occurrence +8 -0
- data/bin/ix-open +9 -0
- data/bin/ix-parse +17 -0
- data/bin/ix-pass +17 -0
- data/bin/ix-path +8 -0
- data/bin/ix-path-stats +21 -0
- data/bin/ix-pbcopy +9 -0
- data/bin/ix-pdf +4 -0
- data/bin/ix-percentage +103 -0
- data/bin/ix-permutations +12 -0
- data/bin/ix-pick +4 -0
- data/bin/ix-planning-tickets +27 -0
- data/bin/ix-prefix +7 -0
- data/bin/ix-pretty +3 -0
- data/bin/ix-print-and-run +15 -0
- data/bin/ix-psd-to-json +16 -0
- data/bin/ix-quote +12 -0
- data/bin/ix-rainbow +21 -0
- data/bin/ix-ramp +15 -0
- data/bin/ix-random-hypothesis +10 -0
- data/bin/ix-range +9 -0
- data/bin/ix-remove-colors +519 -0
- data/bin/ix-remove-empty-lines +12 -0
- data/bin/ix-remove-leading-spaces +11 -0
- data/bin/ix-remove-trailing-spaces +11 -0
- data/bin/ix-replace +6 -0
- data/bin/ix-replay +34 -0
- data/bin/ix-retab +13 -0
- data/bin/ix-reverse +5 -0
- data/bin/ix-right +3 -0
- data/bin/ix-rm +8 -0
- data/bin/ix-rot13 +9 -0
- data/bin/ix-rot3 +9 -0
- data/bin/ix-rps +50 -0
- data/bin/ix-ruby-constructor-arguments +7 -0
- data/bin/ix-ruby-methods +40 -0
- data/bin/ix-ruby-options +189 -0
- data/bin/ix-ruby-procs +40 -0
- data/bin/ix-ruby-put-vars +11 -0
- data/bin/ix-ruby-setter-methods +47 -0
- data/bin/ix-ruby-to-json +9 -0
- data/bin/ix-ruler +13 -0
- data/bin/ix-run +105 -0
- data/bin/ix-saldo +25 -0
- data/bin/ix-sat +10 -0
- data/bin/ix-scan +13 -0
- data/bin/ix-scrum +13 -0
- data/bin/ix-scrum-summary +12 -0
- data/bin/ix-sentence +23 -0
- data/bin/ix-sentencify-comments +12 -0
- data/bin/ix-show-tabs +5 -0
- data/bin/ix-show-trailing-spaces +10 -0
- data/bin/ix-shuffle +11 -0
- data/bin/ix-signature +7 -0
- data/bin/ix-size +9 -0
- data/bin/ix-slider +201 -0
- data/bin/ix-snake +25 -0
- data/bin/ix-split +9 -0
- data/bin/ix-stack +42 -0
- data/bin/ix-stack-2 +31 -0
- data/bin/ix-stamp +5 -0
- data/bin/ix-stats +11 -0
- data/bin/ix-stream +15 -0
- data/bin/ix-string-similarity +152 -0
- data/bin/ix-string-similarity2 +35 -0
- data/bin/ix-strip +6 -0
- data/bin/ix-substract +5 -0
- data/bin/ix-success +2 -0
- data/bin/ix-suffix +7 -0
- data/bin/ix-sum +10 -0
- data/bin/ix-swap +3 -0
- data/bin/ix-symlink +13 -0
- data/bin/ix-tab +6 -0
- data/bin/ix-tabify +7 -0
- data/bin/ix-tac +11 -0
- data/bin/ix-task +20 -0
- data/bin/ix-technical +7 -0
- data/bin/ix-template +48 -0
- data/bin/ix-text-to-binary +7 -0
- data/bin/ix-text-to-dot +22 -0
- data/bin/ix-text-to-json +16 -0
- data/bin/ix-text-to-morse +72 -0
- data/bin/ix-tick +20 -0
- data/bin/ix-time +6 -0
- data/bin/ix-times +10 -0
- data/bin/ix-timestamp +79 -0
- data/bin/ix-timestamp-sort +16 -0
- data/bin/ix-timestamp2 +14 -0
- data/bin/ix-title +2 -0
- data/bin/ix-to-f +6 -0
- data/bin/ix-to-i +6 -0
- data/bin/ix-to-sym +6 -0
- data/bin/ix-to_i +6 -0
- data/bin/ix-todo +11 -0
- data/bin/ix-tokenize-for-template +25 -0
- data/bin/ix-transpose +48 -0
- data/bin/ix-tree +19 -0
- data/bin/ix-trim +5 -0
- data/bin/ix-truncate +22 -0
- data/bin/ix-ts +6 -0
- data/bin/ix-tsv-to-json +15 -0
- data/bin/ix-ucwords +11 -0
- data/bin/ix-unescape +8 -0
- data/bin/ix-unhtml +8 -0
- data/bin/ix-upcase +5 -0
- data/bin/ix-url-check +25 -0
- data/bin/ix-urls +46 -0
- data/bin/ix-vim +9 -0
- data/bin/ix-words +9 -0
- data/bin/ix-wrap +10 -0
- data/bin/ix-xy +81 -0
- data/bin/ix-zebra +122 -0
- metadata +597 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 362167445d202cbbf3db2dbfdd52f3fd7665a5e85ac6aa657084b15b2caa85f6
|
4
|
+
data.tar.gz: 1b6c85e79eab94644b194ebb7612e7e2b916fd65abfd21a49d26c99468850c69
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ac80246f8e44632204bb35da1e0e7abc3b5424df6f254f479bc47387404ef05fb2c41f50d9182f158a8a274829ed6dddc95fdbed3b7e57bec08bf76894a74d54
|
7
|
+
data.tar.gz: e271231627968961f3f900b6c0c13d0422271fb9e100c63181125921bed19c9cbe4137ce4fa9bd2bf1696c07fa95556a119bf3cb44e9695491b353009016f546
|
data/Gemfile
ADDED
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
data/bin/ix
ADDED
data/bin/ix-acronym
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
STDIN.each_line do |line|
|
4
|
+
acronym = []
|
5
|
+
words = []
|
6
|
+
line.chomp!
|
7
|
+
new_line = line.gsub('_', ' ')
|
8
|
+
new_line.scan(/\w+/).each do |word|
|
9
|
+
acronym.push(word[0])
|
10
|
+
words.push(word)
|
11
|
+
end
|
12
|
+
upper_cased_acronym = acronym.map do |char|
|
13
|
+
char.upcase
|
14
|
+
end
|
15
|
+
expanded_acronym = words.map do |word|
|
16
|
+
word.downcase!
|
17
|
+
word = word[0].upcase + word[1..(word.size - 1)]
|
18
|
+
end
|
19
|
+
puts (upper_cased_acronym * '') + " - #{expanded_acronym * ' '}."
|
20
|
+
end
|
21
|
+
|
data/bin/ix-add
ADDED
data/bin/ix-append
ADDED
data/bin/ix-arguments
ADDED
data/bin/ix-array
ADDED
data/bin/ix-ascii
ADDED
data/bin/ix-avg
ADDED
data/bin/ix-aws-pass
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
lower = ('0'..'Z').to_a
|
4
|
+
upper = ('0'..'z').to_a
|
5
|
+
extra = '!@#$%^&*()_+-=[]{}|\''.scan(/./)
|
6
|
+
|
7
|
+
possiblities = lower + upper + extra
|
8
|
+
|
9
|
+
output_string = ''
|
10
|
+
output_length = (ARGV[0] || 8).to_i
|
11
|
+
|
12
|
+
output_length.times do |n|
|
13
|
+
output_string << possiblities.shuffle.first()
|
14
|
+
end
|
15
|
+
|
16
|
+
puts output_string
|
17
|
+
|
data/bin/ix-banner
ADDED
data/bin/ix-base
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
def decode(base, string)
|
4
|
+
data = ((0..9).to_a + ('a'..'z').to_a + ('A'..'Z').to_a) + ['+', '/']
|
5
|
+
if base > data.size
|
6
|
+
raise "Max base is: #{data.size}"
|
7
|
+
end
|
8
|
+
total = 0
|
9
|
+
count = 0
|
10
|
+
string.reverse.each_char do |char|
|
11
|
+
if char =~ /^\d+$/
|
12
|
+
char = char.to_i
|
13
|
+
end
|
14
|
+
index = data.index(char)
|
15
|
+
total = total + (index * (base ** count))
|
16
|
+
count += 1
|
17
|
+
end
|
18
|
+
total
|
19
|
+
end
|
20
|
+
|
21
|
+
STDIN.each_line do |line|
|
22
|
+
puts decode(ARGV[0].to_i, line.chomp)
|
23
|
+
end
|
24
|
+
|
data/bin/ix-basename
ADDED
data/bin/ix-bash-to-md
ADDED
data/bin/ix-bcat
ADDED
@@ -0,0 +1,184 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class Bcat
|
4
|
+
|
5
|
+
# Converts ANSI color sequences to HTML.
|
6
|
+
#
|
7
|
+
# The ANSI module is based on code from the following libraries:
|
8
|
+
#
|
9
|
+
# ansi2html.sh:
|
10
|
+
# http://github.com/pixelb/scripts/blob/master/scripts/ansi2html.sh
|
11
|
+
#
|
12
|
+
# HTML::FromANSI:
|
13
|
+
# http://cpansearch.perl.org/src/NUFFIN/HTML-FromANSI-2.03/lib/HTML/FromANSI.pm
|
14
|
+
class ANSI
|
15
|
+
ESCAPE = "\x1b"
|
16
|
+
|
17
|
+
# Linux console palette
|
18
|
+
STYLES = {
|
19
|
+
'ef0' => 'color:#000',
|
20
|
+
'ef1' => 'color:#A00',
|
21
|
+
'ef2' => 'color:#0A0',
|
22
|
+
'ef3' => 'color:#A50',
|
23
|
+
'ef4' => 'color:#00A',
|
24
|
+
'ef5' => 'color:#A0A',
|
25
|
+
'ef6' => 'color:#0AA',
|
26
|
+
'ef7' => 'color:#AAA',
|
27
|
+
'ef8' => 'color:#555',
|
28
|
+
'ef9' => 'color:#F55',
|
29
|
+
'ef10' => 'color:#5F5',
|
30
|
+
'ef11' => 'color:#FF5',
|
31
|
+
'ef12' => 'color:#55F',
|
32
|
+
'ef13' => 'color:#F5F',
|
33
|
+
'ef14' => 'color:#5FF',
|
34
|
+
'ef15' => 'color:#FFF',
|
35
|
+
'eb0' => 'background-color:#000',
|
36
|
+
'eb1' => 'background-color:#A00',
|
37
|
+
'eb2' => 'background-color:#0A0',
|
38
|
+
'eb3' => 'background-color:#A50',
|
39
|
+
'eb4' => 'background-color:#00A',
|
40
|
+
'eb5' => 'background-color:#A0A',
|
41
|
+
'eb6' => 'background-color:#0AA',
|
42
|
+
'eb7' => 'background-color:#AAA',
|
43
|
+
'eb8' => 'background-color:#555',
|
44
|
+
'eb9' => 'background-color:#F55',
|
45
|
+
'eb10' => 'background-color:#5F5',
|
46
|
+
'eb11' => 'background-color:#FF5',
|
47
|
+
'eb12' => 'background-color:#55F',
|
48
|
+
'eb13' => 'background-color:#F5F',
|
49
|
+
'eb14' => 'background-color:#5FF',
|
50
|
+
'eb15' => 'background-color:#FFF'
|
51
|
+
}
|
52
|
+
|
53
|
+
##
|
54
|
+
# The default xterm 256 colour palette
|
55
|
+
|
56
|
+
(0..5).each do |red|
|
57
|
+
(0..5).each do |green|
|
58
|
+
(0..5).each do |blue|
|
59
|
+
c = 16 + (red * 36) + (green * 6) + blue
|
60
|
+
r = red > 0 ? red * 40 + 55 : 0
|
61
|
+
g = green > 0 ? green * 40 + 55 : 0
|
62
|
+
b = blue > 0 ? blue * 40 + 55 : 0
|
63
|
+
STYLES["ef#{c}"] = "color:#%2.2x%2.2x%2.2x" % [r, g, b]
|
64
|
+
STYLES["eb#{c}"] = "background-color:#%2.2x%2.2x%2.2x" % [r, g, b]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
(0..23).each do |gray|
|
70
|
+
c = gray+232
|
71
|
+
l = gray*10 + 8
|
72
|
+
STYLES["ef#{c}"] = "color:#%2.2x%2.2x%2.2x" % [l, l, l]
|
73
|
+
STYLES["eb#{c}"] = "background-color:#%2.2x%2.2x%2.2x" % [l, l, l]
|
74
|
+
end
|
75
|
+
|
76
|
+
def initialize(input)
|
77
|
+
@input =
|
78
|
+
if input.respond_to?(:to_str)
|
79
|
+
[input]
|
80
|
+
elsif !input.respond_to?(:each)
|
81
|
+
raise ArgumentError, "input must respond to each"
|
82
|
+
else
|
83
|
+
input
|
84
|
+
end
|
85
|
+
@stack = []
|
86
|
+
end
|
87
|
+
|
88
|
+
def to_html
|
89
|
+
buf = []
|
90
|
+
each { |chunk| buf << chunk }
|
91
|
+
buf.join
|
92
|
+
end
|
93
|
+
|
94
|
+
def each
|
95
|
+
buf = ''
|
96
|
+
@input.each do |chunk|
|
97
|
+
buf << chunk
|
98
|
+
tokenize(buf) do |tok, data|
|
99
|
+
case tok
|
100
|
+
when :text
|
101
|
+
yield data
|
102
|
+
when :display
|
103
|
+
case code = data
|
104
|
+
when 0 ; yield reset_styles if @stack.any?
|
105
|
+
when 1 ; yield push_tag("b") # bright
|
106
|
+
when 2 ; #dim
|
107
|
+
when 3, 4 ; yield push_tag("u")
|
108
|
+
when 5, 6 ; yield push_tag("blink")
|
109
|
+
when 7 ; #reverse
|
110
|
+
when 8 ; yield push_style("display:none")
|
111
|
+
when 9 ; yield push_tag("strike")
|
112
|
+
when 30..37 ; yield push_style("ef#{code - 30}")
|
113
|
+
when 40..47 ; yield push_style("eb#{code - 40}")
|
114
|
+
when 90..97 ; yield push_style("ef#{8 + code - 90}")
|
115
|
+
when 100..107 ; yield push_style("eb#{8 + code - 100}")
|
116
|
+
end
|
117
|
+
when :xterm256
|
118
|
+
code = data
|
119
|
+
yield push_style("ef#{code}")
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
yield buf if !buf.empty?
|
124
|
+
yield reset_styles if @stack.any?
|
125
|
+
self
|
126
|
+
end
|
127
|
+
|
128
|
+
def push_tag(tag, style=nil)
|
129
|
+
style = STYLES[style] if style && !style.include?(':')
|
130
|
+
@stack.push tag
|
131
|
+
[ "<#{tag}",
|
132
|
+
(" style='#{style}'" if style),
|
133
|
+
">"
|
134
|
+
].join
|
135
|
+
end
|
136
|
+
|
137
|
+
def push_style(style)
|
138
|
+
push_tag "span", style
|
139
|
+
end
|
140
|
+
|
141
|
+
def reset_styles
|
142
|
+
stack, @stack = @stack, []
|
143
|
+
stack.reverse.map { |tag| "</#{tag}>" }.join
|
144
|
+
end
|
145
|
+
|
146
|
+
def tokenize(text)
|
147
|
+
tokens = [
|
148
|
+
# characters to remove completely
|
149
|
+
[/\A\x08+/, lambda { |m| '' }],
|
150
|
+
|
151
|
+
[/\A\x1b\[38;5;(\d+)m/, lambda { |m| yield :xterm256, $1.to_i; '' } ],
|
152
|
+
|
153
|
+
# ansi escape sequences that mess with the display
|
154
|
+
[/\A\x1b\[((?:\d{1,3};?)+|)m/, lambda { |m|
|
155
|
+
m = '0' if m.strip.empty?
|
156
|
+
m.chomp(';').split(';').
|
157
|
+
each { |code| yield :display, code.to_i };
|
158
|
+
'' }],
|
159
|
+
|
160
|
+
# malformed sequences
|
161
|
+
[/\A\x1b\[?[\d;]{0,3}/, lambda { |m| '' }],
|
162
|
+
|
163
|
+
# real text
|
164
|
+
[/\A([^\x1b\x08]+)/m, lambda { |m| yield :text, m; '' }]
|
165
|
+
]
|
166
|
+
|
167
|
+
while (size = text.size) > 0
|
168
|
+
tokens.each do |pattern, sub|
|
169
|
+
break if text.sub!(pattern) { sub.call($1) }
|
170
|
+
end
|
171
|
+
break if text.size == size
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
data = []
|
179
|
+
|
180
|
+
STDIN.each_line do |line|
|
181
|
+
data.push(line)
|
182
|
+
end
|
183
|
+
|
184
|
+
puts Bcat::ANSI.new(data).to_html
|
data/bin/ix-bellgrep
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
regex = /#{ARGV[0]}/
|
7
|
+
|
8
|
+
STDIN.each_line do |line|
|
9
|
+
if line =~ regex
|
10
|
+
object = {}
|
11
|
+
object['timestamp'] = Time.now.tv_sec
|
12
|
+
object['line'] = line.chomp
|
13
|
+
object['match'] = line.scan(regex)
|
14
|
+
puts object.to_json
|
15
|
+
$stderr.puts "\a"
|
16
|
+
end
|
17
|
+
end
|
data/bin/ix-bench
ADDED
data/bin/ix-blackbox
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
inputs = []
|
4
|
+
outputs = []
|
5
|
+
system = 'n/a'
|
6
|
+
|
7
|
+
INPUT_REGEX = /^\w+/
|
8
|
+
SYSTEM_REGEX = /^\s{4}\w+/
|
9
|
+
OUTPUT_REGEX = /^\s{8}\w+/
|
10
|
+
SPACE_REGEX = /^\s+/
|
11
|
+
|
12
|
+
STDIN.each_line do |line|
|
13
|
+
|
14
|
+
line.chomp!
|
15
|
+
|
16
|
+
if line =~ INPUT_REGEX
|
17
|
+
inputs.push(line.gsub(SPACE_REGEX, ''))
|
18
|
+
end
|
19
|
+
|
20
|
+
if line =~ OUTPUT_REGEX
|
21
|
+
outputs.push(line.gsub(SPACE_REGEX, ''))
|
22
|
+
end
|
23
|
+
|
24
|
+
if line =~ SYSTEM_REGEX
|
25
|
+
system = line.gsub(SPACE_REGEX, '')
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
TEMPLATE = '"%s" -> "%s"'
|
31
|
+
|
32
|
+
puts "digraph #{system} {
|
33
|
+
rankdir = LR;
|
34
|
+
"
|
35
|
+
|
36
|
+
inputs.each do |input|
|
37
|
+
puts TEMPLATE % [input, system]
|
38
|
+
end
|
39
|
+
|
40
|
+
outputs.each do |output|
|
41
|
+
puts TEMPLATE % [system, output]
|
42
|
+
end
|
43
|
+
|
44
|
+
puts '}'
|
45
|
+
|
@@ -0,0 +1,86 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
inputs = []
|
4
|
+
outputs = []
|
5
|
+
system = 'n/a'
|
6
|
+
|
7
|
+
INPUT_REGEX = /^\w+/
|
8
|
+
SYSTEM_REGEX = /^\s{4}\w+/
|
9
|
+
OUTPUT_REGEX = /^\s{8}\w+/
|
10
|
+
SPACE_REGEX = /^\s+/
|
11
|
+
|
12
|
+
STDIN.each_line do |line|
|
13
|
+
|
14
|
+
line.chomp!
|
15
|
+
|
16
|
+
if line =~ INPUT_REGEX
|
17
|
+
inputs.push(line.gsub(SPACE_REGEX, ''))
|
18
|
+
end
|
19
|
+
|
20
|
+
if line =~ OUTPUT_REGEX
|
21
|
+
outputs.push(line.gsub(SPACE_REGEX, ''))
|
22
|
+
end
|
23
|
+
|
24
|
+
if line =~ SYSTEM_REGEX
|
25
|
+
system = line.gsub(SPACE_REGEX, '')
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
ROW_TEMPLATE = '
|
31
|
+
<tr>
|
32
|
+
<td>
|
33
|
+
%s
|
34
|
+
</td>
|
35
|
+
<td>
|
36
|
+
%s
|
37
|
+
</td>
|
38
|
+
<td>
|
39
|
+
%s
|
40
|
+
</td>
|
41
|
+
</tr>
|
42
|
+
'
|
43
|
+
|
44
|
+
ROW_HEADER_TEMPLATE = '
|
45
|
+
<tr>
|
46
|
+
<th>
|
47
|
+
%s
|
48
|
+
</th>
|
49
|
+
<th>
|
50
|
+
%s
|
51
|
+
</th>
|
52
|
+
<th>
|
53
|
+
%s
|
54
|
+
</th>
|
55
|
+
</tr>
|
56
|
+
'
|
57
|
+
puts HEADER = '<p> Fuctional Specification: %s </p>' % [system]
|
58
|
+
|
59
|
+
TABLE_OPENING = '<table border=1>'
|
60
|
+
|
61
|
+
TABLE_HEADER = '
|
62
|
+
<caption>
|
63
|
+
Fuctional Specification: %s
|
64
|
+
</caption>
|
65
|
+
%s
|
66
|
+
'
|
67
|
+
|
68
|
+
header = ROW_HEADER_TEMPLATE % [
|
69
|
+
'Type',
|
70
|
+
'Name',
|
71
|
+
'Description'
|
72
|
+
]
|
73
|
+
|
74
|
+
puts TABLE_OPENING
|
75
|
+
|
76
|
+
puts TABLE_HEADER % [system, header]
|
77
|
+
|
78
|
+
inputs.each do |input|
|
79
|
+
puts ROW_TEMPLATE % ['Input', input, '']
|
80
|
+
end
|
81
|
+
|
82
|
+
outputs.each do |output|
|
83
|
+
puts ROW_TEMPLATE % ['Output', output, '']
|
84
|
+
end
|
85
|
+
|
86
|
+
puts '</table>'
|
data/bin/ix-blamer
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
extend = false
|
4
|
+
|
5
|
+
if ARGV[0] == '-e'
|
6
|
+
extend = true
|
7
|
+
end
|
8
|
+
|
9
|
+
Dir.glob('**/*.rb').each do |file|
|
10
|
+
system "git blame #{file} | awk '{print $2}' | sort | uniq -c | sort -n | sed 's/(//g' | ix swap > /tmp/blamer.cache"
|
11
|
+
if extend
|
12
|
+
output = `cat /tmp/blamer.cache | ix percentage`
|
13
|
+
puts file
|
14
|
+
output.each_line do |line|
|
15
|
+
puts " #{line}"
|
16
|
+
end
|
17
|
+
puts ''
|
18
|
+
next
|
19
|
+
end
|
20
|
+
percent = `cat /tmp/blamer.cache | ix percentage | tail -2 | head -1`
|
21
|
+
puts "#{percent.chomp} #{file}"
|
22
|
+
end
|
23
|
+
|
data/bin/ix-box
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
def boxify(string)
|
4
|
+
join = '+'
|
5
|
+
frame = '-'
|
6
|
+
wall = '|'
|
7
|
+
width = 0
|
8
|
+
height = 0
|
9
|
+
string.each_line do |line|
|
10
|
+
if line.size > width
|
11
|
+
width = line.chomp.size
|
12
|
+
end
|
13
|
+
height += 1
|
14
|
+
end
|
15
|
+
puts "#{join}#{frame}#{frame * width}#{frame}#{join}"
|
16
|
+
string.each_line do |line|
|
17
|
+
puts "#{wall} #{line.chomp}#{' ' * (width - line.chomp.size)} #{wall}"
|
18
|
+
end
|
19
|
+
puts "#{join}#{frame}#{frame * width}#{frame}#{join}"
|
20
|
+
end
|
21
|
+
|
22
|
+
box = ARGV[0] == '-b'
|
23
|
+
|
24
|
+
if box
|
25
|
+
text = ''
|
26
|
+
STDIN.each_line do |line|
|
27
|
+
text << line
|
28
|
+
end
|
29
|
+
boxify(text)
|
30
|
+
else
|
31
|
+
STDIN.each_line do |line|
|
32
|
+
boxify(line.chomp)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
data/bin/ix-box2
ADDED
data/bin/ix-box3
ADDED
data/bin/ix-camel
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
STDIN.each_line do |line|
|
4
|
+
line = line.chomp
|
5
|
+
line.gsub!(/\W+/, ' ')
|
6
|
+
line.gsub!(/\s+/, '_')
|
7
|
+
line.gsub!(/^[_]+|[_]+$/, '')
|
8
|
+
line.gsub!(/_/, ' ')
|
9
|
+
line.downcase!
|
10
|
+
words = line.scan(/\w+/)
|
11
|
+
capitalized = words.map do |word|
|
12
|
+
word = word.to_s
|
13
|
+
word[0] = word[0].upcase
|
14
|
+
word
|
15
|
+
end
|
16
|
+
puts capitalized.join('')
|
17
|
+
end
|
data/bin/ix-cat
ADDED
data/bin/ix-catafter
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Usage: catafter [pattern]
|
4
|
+
|
5
|
+
unless ARGV[0]
|
6
|
+
$stderr.puts 'give me a pattern.'
|
7
|
+
exit 1
|
8
|
+
end
|
9
|
+
|
10
|
+
pattern = Regexp.new ARGV[0]
|
11
|
+
|
12
|
+
flag = false
|
13
|
+
|
14
|
+
STDIN.each do |line|
|
15
|
+
flag = true if line =~ pattern
|
16
|
+
puts line if flag
|
17
|
+
end
|
18
|
+
|