ix-cli 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (274) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/VERSION +1 -0
  4. data/bin/ix +14 -0
  5. data/bin/ix-acronym +21 -0
  6. data/bin/ix-add +8 -0
  7. data/bin/ix-append +8 -0
  8. data/bin/ix-arguments +12 -0
  9. data/bin/ix-array +17 -0
  10. data/bin/ix-ascii +3 -0
  11. data/bin/ix-avg +18 -0
  12. data/bin/ix-aws-pass +17 -0
  13. data/bin/ix-banner +2 -0
  14. data/bin/ix-base +24 -0
  15. data/bin/ix-base64-to-image +6 -0
  16. data/bin/ix-basename +8 -0
  17. data/bin/ix-bash-to-md +17 -0
  18. data/bin/ix-bcat +184 -0
  19. data/bin/ix-bellgrep +17 -0
  20. data/bin/ix-bench +9 -0
  21. data/bin/ix-binary-to-text +8 -0
  22. data/bin/ix-blackbox +45 -0
  23. data/bin/ix-blackbox-html-table +86 -0
  24. data/bin/ix-blamer +23 -0
  25. data/bin/ix-box +35 -0
  26. data/bin/ix-box2 +3 -0
  27. data/bin/ix-box3 +3 -0
  28. data/bin/ix-camel +17 -0
  29. data/bin/ix-cat +7 -0
  30. data/bin/ix-catafter +18 -0
  31. data/bin/ix-catan +6 -0
  32. data/bin/ix-chain +13 -0
  33. data/bin/ix-chars +4 -0
  34. data/bin/ix-checklist +23 -0
  35. data/bin/ix-child-math +10 -0
  36. data/bin/ix-chomp +6 -0
  37. data/bin/ix-chr +6 -0
  38. data/bin/ix-class +5 -0
  39. data/bin/ix-columns +41 -0
  40. data/bin/ix-combinations +11 -0
  41. data/bin/ix-command-class +21 -0
  42. data/bin/ix-commandify +22 -0
  43. data/bin/ix-commit +9 -0
  44. data/bin/ix-confirm +47 -0
  45. data/bin/ix-constants +9 -0
  46. data/bin/ix-cp +10 -0
  47. data/bin/ix-crack +163 -0
  48. data/bin/ix-crap +26 -0
  49. data/bin/ix-crazy-case +9 -0
  50. data/bin/ix-create-cluster-nodes +15 -0
  51. data/bin/ix-csv-to-json +16 -0
  52. data/bin/ix-day +12 -0
  53. data/bin/ix-debugging +33 -0
  54. data/bin/ix-decode-base64 +8 -0
  55. data/bin/ix-dequote +3 -0
  56. data/bin/ix-df +15 -0
  57. data/bin/ix-diagram +47 -0
  58. data/bin/ix-dirname +5 -0
  59. data/bin/ix-divide +8 -0
  60. data/bin/ix-done +11 -0
  61. data/bin/ix-dot-case +15 -0
  62. data/bin/ix-downcase +5 -0
  63. data/bin/ix-dto +39 -0
  64. data/bin/ix-each +7 -0
  65. data/bin/ix-edit +21 -0
  66. data/bin/ix-emails +10 -0
  67. data/bin/ix-escape +8 -0
  68. data/bin/ix-extensions +3 -0
  69. data/bin/ix-file-exists +11 -0
  70. data/bin/ix-filename +7 -0
  71. data/bin/ix-files +9 -0
  72. data/bin/ix-first +6 -0
  73. data/bin/ix-fish-diagram +47 -0
  74. data/bin/ix-flip-flop +20 -0
  75. data/bin/ix-flow +22 -0
  76. data/bin/ix-format-ruby-hash +61 -0
  77. data/bin/ix-gauge +86 -0
  78. data/bin/ix-get-colors +520 -0
  79. data/bin/ix-gift-exchange +52 -0
  80. data/bin/ix-glitter +29 -0
  81. data/bin/ix-grep-join +4 -0
  82. data/bin/ix-group +21 -0
  83. data/bin/ix-groups +15 -0
  84. data/bin/ix-gsub +5 -0
  85. data/bin/ix-gzip-dir +33 -0
  86. data/bin/ix-hash +10 -0
  87. data/bin/ix-hashtag +12 -0
  88. data/bin/ix-hex2rgb +5 -0
  89. data/bin/ix-histogram +80 -0
  90. data/bin/ix-hls +21 -0
  91. data/bin/ix-html +3 -0
  92. data/bin/ix-human-time +3 -0
  93. data/bin/ix-hyphen +9 -0
  94. data/bin/ix-hypothesis +546 -0
  95. data/bin/ix-ids +10 -0
  96. data/bin/ix-image-generate +3 -0
  97. data/bin/ix-image-to-base64 +9 -0
  98. data/bin/ix-increments +16 -0
  99. data/bin/ix-indent +42 -0
  100. data/bin/ix-indent-to-dot +36 -0
  101. data/bin/ix-int +5 -0
  102. data/bin/ix-interpolate +5 -0
  103. data/bin/ix-ips +4 -0
  104. data/bin/ix-jd +13 -0
  105. data/bin/ix-join +15 -0
  106. data/bin/ix-js-classic-functions +9 -0
  107. data/bin/ix-json-append +17 -0
  108. data/bin/ix-json-array-to-records +10 -0
  109. data/bin/ix-json-format +31 -0
  110. data/bin/ix-json-grep +16 -0
  111. data/bin/ix-json-interpolate +17 -0
  112. data/bin/ix-json-key +40 -0
  113. data/bin/ix-json-key-value +14 -0
  114. data/bin/ix-json-keys +12 -0
  115. data/bin/ix-json-merge +11 -0
  116. data/bin/ix-json-paths +61 -0
  117. data/bin/ix-json-paths-pretty +2 -0
  118. data/bin/ix-json-pp +11 -0
  119. data/bin/ix-json-query +14 -0
  120. data/bin/ix-json-records-to-array +13 -0
  121. data/bin/ix-json-remove-key +15 -0
  122. data/bin/ix-json-replace-values +35 -0
  123. data/bin/ix-json-template +267 -0
  124. data/bin/ix-json-to-csv +19 -0
  125. data/bin/ix-json-to-dot +5 -0
  126. data/bin/ix-json-to-html-table +84 -0
  127. data/bin/ix-json-to-ruby-hash +13 -0
  128. data/bin/ix-json-to-table +21 -0
  129. data/bin/ix-json-to-table-2 +22 -0
  130. data/bin/ix-json-to-xml +1 -0
  131. data/bin/ix-json-values +13 -0
  132. data/bin/ix-jsonpp +14 -0
  133. data/bin/ix-lake +6 -0
  134. data/bin/ix-lemmatize +17 -0
  135. data/bin/ix-length +6 -0
  136. data/bin/ix-linkify +35 -0
  137. data/bin/ix-linkify-html +70 -0
  138. data/bin/ix-links +3 -0
  139. data/bin/ix-llp +247 -0
  140. data/bin/ix-llp-indent +20 -0
  141. data/bin/ix-llp2 +224 -0
  142. data/bin/ix-log +44 -0
  143. data/bin/ix-make-readable +13 -0
  144. data/bin/ix-man +14 -0
  145. data/bin/ix-math +6 -0
  146. data/bin/ix-maze +3 -0
  147. data/bin/ix-md5 +7 -0
  148. data/bin/ix-md5s +3 -0
  149. data/bin/ix-military +39 -0
  150. data/bin/ix-morse-to-text +76 -0
  151. data/bin/ix-mr-robot +13 -0
  152. data/bin/ix-multiply +8 -0
  153. data/bin/ix-mv +10 -0
  154. data/bin/ix-ncsa-date-to-timestamp +27 -0
  155. data/bin/ix-nested-list +23 -0
  156. data/bin/ix-nnjj +16 -0
  157. data/bin/ix-noeol +6 -0
  158. data/bin/ix-noise +7 -0
  159. data/bin/ix-normalize +69 -0
  160. data/bin/ix-numbers +4 -0
  161. data/bin/ix-numerate +16 -0
  162. data/bin/ix-occurrence +8 -0
  163. data/bin/ix-open +9 -0
  164. data/bin/ix-parse +17 -0
  165. data/bin/ix-pass +17 -0
  166. data/bin/ix-path +8 -0
  167. data/bin/ix-path-stats +21 -0
  168. data/bin/ix-pbcopy +9 -0
  169. data/bin/ix-pdf +4 -0
  170. data/bin/ix-percentage +103 -0
  171. data/bin/ix-permutations +12 -0
  172. data/bin/ix-pick +4 -0
  173. data/bin/ix-planning-tickets +27 -0
  174. data/bin/ix-prefix +7 -0
  175. data/bin/ix-pretty +3 -0
  176. data/bin/ix-print-and-run +15 -0
  177. data/bin/ix-psd-to-json +16 -0
  178. data/bin/ix-quote +12 -0
  179. data/bin/ix-rainbow +21 -0
  180. data/bin/ix-ramp +15 -0
  181. data/bin/ix-random-hypothesis +10 -0
  182. data/bin/ix-range +9 -0
  183. data/bin/ix-remove-colors +519 -0
  184. data/bin/ix-remove-empty-lines +12 -0
  185. data/bin/ix-remove-leading-spaces +11 -0
  186. data/bin/ix-remove-trailing-spaces +11 -0
  187. data/bin/ix-replace +6 -0
  188. data/bin/ix-replay +34 -0
  189. data/bin/ix-retab +13 -0
  190. data/bin/ix-reverse +5 -0
  191. data/bin/ix-right +3 -0
  192. data/bin/ix-rm +8 -0
  193. data/bin/ix-rot13 +9 -0
  194. data/bin/ix-rot3 +9 -0
  195. data/bin/ix-rps +50 -0
  196. data/bin/ix-ruby-constructor-arguments +7 -0
  197. data/bin/ix-ruby-methods +40 -0
  198. data/bin/ix-ruby-options +189 -0
  199. data/bin/ix-ruby-procs +40 -0
  200. data/bin/ix-ruby-put-vars +11 -0
  201. data/bin/ix-ruby-setter-methods +47 -0
  202. data/bin/ix-ruby-to-json +9 -0
  203. data/bin/ix-ruler +13 -0
  204. data/bin/ix-run +105 -0
  205. data/bin/ix-saldo +25 -0
  206. data/bin/ix-sat +10 -0
  207. data/bin/ix-scan +13 -0
  208. data/bin/ix-scrum +13 -0
  209. data/bin/ix-scrum-summary +12 -0
  210. data/bin/ix-sentence +23 -0
  211. data/bin/ix-sentencify-comments +12 -0
  212. data/bin/ix-show-tabs +5 -0
  213. data/bin/ix-show-trailing-spaces +10 -0
  214. data/bin/ix-shuffle +11 -0
  215. data/bin/ix-signature +7 -0
  216. data/bin/ix-size +9 -0
  217. data/bin/ix-slider +201 -0
  218. data/bin/ix-snake +25 -0
  219. data/bin/ix-split +9 -0
  220. data/bin/ix-stack +42 -0
  221. data/bin/ix-stack-2 +31 -0
  222. data/bin/ix-stamp +5 -0
  223. data/bin/ix-stats +11 -0
  224. data/bin/ix-stream +15 -0
  225. data/bin/ix-string-similarity +152 -0
  226. data/bin/ix-string-similarity2 +35 -0
  227. data/bin/ix-strip +6 -0
  228. data/bin/ix-substract +5 -0
  229. data/bin/ix-success +2 -0
  230. data/bin/ix-suffix +7 -0
  231. data/bin/ix-sum +10 -0
  232. data/bin/ix-swap +3 -0
  233. data/bin/ix-symlink +13 -0
  234. data/bin/ix-tab +6 -0
  235. data/bin/ix-tabify +7 -0
  236. data/bin/ix-tac +11 -0
  237. data/bin/ix-task +20 -0
  238. data/bin/ix-technical +7 -0
  239. data/bin/ix-template +48 -0
  240. data/bin/ix-text-to-binary +7 -0
  241. data/bin/ix-text-to-dot +22 -0
  242. data/bin/ix-text-to-json +16 -0
  243. data/bin/ix-text-to-morse +72 -0
  244. data/bin/ix-tick +20 -0
  245. data/bin/ix-time +6 -0
  246. data/bin/ix-times +10 -0
  247. data/bin/ix-timestamp +79 -0
  248. data/bin/ix-timestamp-sort +16 -0
  249. data/bin/ix-timestamp2 +14 -0
  250. data/bin/ix-title +2 -0
  251. data/bin/ix-to-f +6 -0
  252. data/bin/ix-to-i +6 -0
  253. data/bin/ix-to-sym +6 -0
  254. data/bin/ix-to_i +6 -0
  255. data/bin/ix-todo +11 -0
  256. data/bin/ix-tokenize-for-template +25 -0
  257. data/bin/ix-transpose +48 -0
  258. data/bin/ix-tree +19 -0
  259. data/bin/ix-trim +5 -0
  260. data/bin/ix-truncate +22 -0
  261. data/bin/ix-ts +6 -0
  262. data/bin/ix-tsv-to-json +15 -0
  263. data/bin/ix-ucwords +11 -0
  264. data/bin/ix-unescape +8 -0
  265. data/bin/ix-unhtml +8 -0
  266. data/bin/ix-upcase +5 -0
  267. data/bin/ix-url-check +25 -0
  268. data/bin/ix-urls +46 -0
  269. data/bin/ix-vim +9 -0
  270. data/bin/ix-words +9 -0
  271. data/bin/ix-wrap +10 -0
  272. data/bin/ix-xy +81 -0
  273. data/bin/ix-zebra +122 -0
  274. 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
@@ -0,0 +1,3 @@
1
+
2
+ gem 'isna', '0.0.4'
3
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
data/bin/ix ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if ARGV[0]
4
+ command = "ix-#{ARGV[0]}"
5
+ args = ARGV
6
+ args.shift
7
+ system(command, *args)
8
+ else
9
+ dir = File.dirname($0)
10
+ Dir.glob("#{dir}/ix-*").each do |tool|
11
+ puts "#{File.basename(tool)}"
12
+ end
13
+ end
14
+
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
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ add_amount = ARGV[0].to_i
4
+
5
+ STDIN.each_line do |line|
6
+ puts(line.to_i + add_amount)
7
+ end
8
+
data/bin/ix-append ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.chomp
5
+ end
6
+
7
+ print ARGV[0]
8
+
data/bin/ix-arguments ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ arguments = []
4
+
5
+ STDIN.each_line do |line|
6
+ arguments.push(line.chomp)
7
+ end
8
+
9
+ template = "(%s)"
10
+ bindings = [(arguments * ', ')]
11
+ puts template % bindings
12
+
data/bin/ix-array ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ array = []
4
+
5
+ STDIN.each_line do |line|
6
+ item = line.chomp
7
+ if item =~ /^\d+$/
8
+ item = item.to_i
9
+ end
10
+ array << item
11
+ end
12
+
13
+ puts '['
14
+ array.each do |item|
15
+ puts ' ' + item.inspect + ','
16
+ end
17
+ puts ']'
data/bin/ix-ascii ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ system 'seq 33 126 | ix chr | ix numerate'
data/bin/ix-avg ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ sum = 0
4
+
5
+ count = 0
6
+
7
+ STDIN.each_line do |line|
8
+ count += 1
9
+ sum += line.to_i
10
+ end
11
+
12
+ if count > 0
13
+ puts (sum / count)
14
+ else
15
+ puts 'count is zero'
16
+ end
17
+
18
+
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
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bash
2
+ banner -w 30 | ix box2 | ix transpose | ix tac
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
+
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts "<img src='#{line.chomp!}' />"
5
+ end
6
+
data/bin/ix-basename ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # transforms paths from stdin to a list of basenames
4
+
5
+ STDIN.each_line do |path|
6
+ puts File.basename(path)
7
+ end
8
+
data/bin/ix-bash-to-md ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lines = []
4
+
5
+ STDIN.each_line do |line|
6
+ lines.push(line)
7
+ end
8
+
9
+ data = (lines * '')
10
+
11
+ chunks = data.split('#')
12
+
13
+ chunks.each_with_index do |chunk, index|
14
+ puts ''
15
+ puts index
16
+ puts chunk
17
+ end
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
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts ''
5
+ puts "log('before: ' + #{line.chomp.inspect})"
6
+ puts line
7
+ puts "log(' after: ' + #{line.chomp.inspect})"
8
+ end
9
+
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # ix scan '\d+' | ix base 2 | ix chr
4
+
5
+ STDIN.each_line do |line|
6
+ print line.to_i(2).chr
7
+ end
8
+
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
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ix transpose | ix box -b | ix transpose
data/bin/ix-box3 ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ix transpose | ix box2 | ix transpose
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
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+
3
+ application=$1
4
+ target_path=`dirname $0`
5
+ target_file="$target_path/ix-$application"
6
+
7
+ cat $target_file
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
+