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
data/bin/ix-text-to-dot
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
|
4
|
+
puts 'digraph G {'
|
5
|
+
puts 'rankdir = LR;'
|
6
|
+
|
7
|
+
QUOTED_NODES_REGEX = /("[^"]+")(\s*)("[^"]+")/
|
8
|
+
|
9
|
+
template = '"%s" -> "%s"'
|
10
|
+
STDIN.each_line do |line|
|
11
|
+
line = line.chomp
|
12
|
+
if line =~ QUOTED_NODES_REGEX
|
13
|
+
list = line.scan(QUOTED_NODES_REGEX)
|
14
|
+
node_a, space, node_b = list[0]
|
15
|
+
else
|
16
|
+
node_a, node_b = line.split(' ')
|
17
|
+
end
|
18
|
+
puts template % [node_a, node_b]
|
19
|
+
end
|
20
|
+
|
21
|
+
puts '}'
|
22
|
+
|
data/bin/ix-text-to-json
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
values = ARGV
|
7
|
+
|
8
|
+
STDIN.each_line do |line|
|
9
|
+
words = line.split(' ')
|
10
|
+
object = {}
|
11
|
+
values.each_with_index do |value, index|
|
12
|
+
object[value] = words[index]
|
13
|
+
end
|
14
|
+
puts object.to_json
|
15
|
+
end
|
16
|
+
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class Morse
|
4
|
+
|
5
|
+
MAPPING = {
|
6
|
+
'a' => '.-',
|
7
|
+
'b' => '-...',
|
8
|
+
'c' => '-.-.',
|
9
|
+
'd' => '-..',
|
10
|
+
'e' => '.',
|
11
|
+
'f' => '..-.',
|
12
|
+
'g' => '--.',
|
13
|
+
'h' => '....',
|
14
|
+
'i' => '..',
|
15
|
+
'j' => '.---',
|
16
|
+
'k' => '-.-',
|
17
|
+
'l' => '.-..',
|
18
|
+
'm' => '--',
|
19
|
+
'n' => '-.',
|
20
|
+
'o' => '---',
|
21
|
+
'p' => '.--.',
|
22
|
+
'q' => '--.-',
|
23
|
+
'r' => '.-.',
|
24
|
+
's' => '...',
|
25
|
+
't' => '-',
|
26
|
+
'u' => '..-',
|
27
|
+
'v' => '...-',
|
28
|
+
'w' => '.--',
|
29
|
+
'x' => '-..-',
|
30
|
+
'y' => '-.--',
|
31
|
+
'z' => '--..',
|
32
|
+
'0' => '-----',
|
33
|
+
'1' => '.----',
|
34
|
+
'2' => '..---',
|
35
|
+
'3' => '...--',
|
36
|
+
'4' => '....-',
|
37
|
+
'5' => '.....',
|
38
|
+
'6' => '-....',
|
39
|
+
'7' => '--...',
|
40
|
+
'8' => '---..',
|
41
|
+
'9' => '----.',
|
42
|
+
' ' => ' / ',
|
43
|
+
}
|
44
|
+
|
45
|
+
def self.text_to_morse(string)
|
46
|
+
result = ''
|
47
|
+
string.scan(/[a-zA-Z0-9]| /).each do |char|
|
48
|
+
result << MAPPING[char.downcase] + ' '
|
49
|
+
end
|
50
|
+
result
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.morse_to_text(string)
|
54
|
+
result = ''
|
55
|
+
string.split(' / ').each do |word|
|
56
|
+
word.split(' ').each do |char|
|
57
|
+
MAPPING.each do |k, v|
|
58
|
+
if v == char
|
59
|
+
result << k
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
result << ' '
|
64
|
+
end
|
65
|
+
result
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
STDIN.each_line do |line|
|
71
|
+
puts Morse.text_to_morse(line)
|
72
|
+
end
|
data/bin/ix-tick
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$running = true
|
4
|
+
|
5
|
+
STDOUT.sync = true
|
6
|
+
|
7
|
+
shutdown = proc do
|
8
|
+
$running = false
|
9
|
+
$stderr.puts 'bye.'
|
10
|
+
end
|
11
|
+
|
12
|
+
trap('INT', &shutdown)
|
13
|
+
trap('QUIT', &shutdown)
|
14
|
+
trap('TERM', &shutdown)
|
15
|
+
|
16
|
+
STDIN.each_line do |line|
|
17
|
+
puts line.chomp
|
18
|
+
sleep (ARGV[0] || 1).to_i
|
19
|
+
break unless $running
|
20
|
+
end
|
data/bin/ix-time
ADDED
data/bin/ix-times
ADDED
data/bin/ix-timestamp
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$stdout.sync = true
|
4
|
+
|
5
|
+
if ARGV[0]
|
6
|
+
if ARGV[0] == '-h'
|
7
|
+
puts ''
|
8
|
+
puts 'Leyend below:'
|
9
|
+
puts ''
|
10
|
+
puts ' - [ diff ] Indicates the time elapsed since the previous line to the current line.'
|
11
|
+
puts ' - [ time ] Indicates the time elapsed since the beginning of time.'
|
12
|
+
puts ''
|
13
|
+
puts ' Please note that all times are shown in seconds'
|
14
|
+
puts ''
|
15
|
+
puts ''
|
16
|
+
exit 0
|
17
|
+
else
|
18
|
+
divide = 1000
|
19
|
+
end
|
20
|
+
else
|
21
|
+
divide = 1
|
22
|
+
end
|
23
|
+
|
24
|
+
previous = nil
|
25
|
+
|
26
|
+
diffs = []
|
27
|
+
|
28
|
+
regex_float = /[0-9]{10,13}\.\d+/
|
29
|
+
regex_int = /[0-9]{10,13}/
|
30
|
+
|
31
|
+
first_timestamp = false
|
32
|
+
|
33
|
+
STDIN.each_line do |line|
|
34
|
+
line.chomp!
|
35
|
+
|
36
|
+
timestamps = line.scan(regex_float)
|
37
|
+
|
38
|
+
if timestamps == []
|
39
|
+
timestamps = line.scan(regex_int)
|
40
|
+
end
|
41
|
+
|
42
|
+
if timestamps == []
|
43
|
+
next
|
44
|
+
end
|
45
|
+
|
46
|
+
timestamps.each do |timestamp|
|
47
|
+
|
48
|
+
unless first_timestamp
|
49
|
+
first_timestamp = Time.at(timestamps.first.to_f / divide)
|
50
|
+
end
|
51
|
+
|
52
|
+
date = Time.at(timestamp.to_f / divide)
|
53
|
+
previous = date unless previous
|
54
|
+
diff = (date - previous)
|
55
|
+
template = "%20s %s %20.5f < diff %10.5f < time -- %s"
|
56
|
+
bindings = []
|
57
|
+
bindings.push(timestamp)
|
58
|
+
bindings.push(date)
|
59
|
+
bindings.push(diff)
|
60
|
+
if ENV['REPLAY']
|
61
|
+
sleep diff
|
62
|
+
end
|
63
|
+
bindings.push(date - first_timestamp)
|
64
|
+
diffs.push(diff)
|
65
|
+
bindings.push(line)
|
66
|
+
puts template % bindings
|
67
|
+
previous = date
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
total = 0
|
73
|
+
diffs.each do |diff|
|
74
|
+
total += diff
|
75
|
+
end
|
76
|
+
|
77
|
+
puts ''
|
78
|
+
puts "# Total time elapsed: #{total}"
|
79
|
+
puts ''
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
lines = {}
|
4
|
+
|
5
|
+
TIMESTAMP_REGEX = /[0-9]{10}\.\d+/
|
6
|
+
|
7
|
+
STDIN.each_line do |line|
|
8
|
+
if line =~ TIMESTAMP_REGEX
|
9
|
+
timestamp = line.scan(TIMESTAMP_REGEX)[0]
|
10
|
+
lines[timestamp] = line
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
lines.keys.sort.each do |timestap|
|
15
|
+
puts lines[timestap].chomp
|
16
|
+
end
|
data/bin/ix-timestamp2
ADDED
data/bin/ix-title
ADDED
data/bin/ix-to-f
ADDED
data/bin/ix-to-i
ADDED
data/bin/ix-to-sym
ADDED
data/bin/ix-to_i
ADDED
data/bin/ix-todo
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
WORDS_REGEX = /\w+/
|
4
|
+
UPPER_CASE_WORDS = /([A-Z])/
|
5
|
+
SPACE_PADDING = /^\s+/
|
6
|
+
STARTS_WITH_UPPERCASE = /\s*[A-Z]/
|
7
|
+
|
8
|
+
starts_with_uppercase = false
|
9
|
+
|
10
|
+
STDIN.each_line do |line|
|
11
|
+
line.chomp!
|
12
|
+
if line =~ STARTS_WITH_UPPERCASE
|
13
|
+
starts_with_uppercase = true
|
14
|
+
end
|
15
|
+
line.gsub!(UPPER_CASE_WORDS, ' \1')
|
16
|
+
padding = line.scan(SPACE_PADDING)[0].to_s
|
17
|
+
words = line.scan(WORDS_REGEX)
|
18
|
+
|
19
|
+
if starts_with_uppercase
|
20
|
+
padding = padding[1..(padding.size - 1)]
|
21
|
+
end
|
22
|
+
snake = words.map { |word| word.downcase } * '_'
|
23
|
+
puts padding + line + ' %<' + snake + '>s'
|
24
|
+
end
|
25
|
+
|
data/bin/ix-transpose
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
if ARGV[0] == '-l'
|
4
|
+
orientation = :left
|
5
|
+
else
|
6
|
+
orientation = :right
|
7
|
+
end
|
8
|
+
|
9
|
+
matrix = []
|
10
|
+
|
11
|
+
row = []
|
12
|
+
|
13
|
+
max_size = 0
|
14
|
+
|
15
|
+
STDIN.each_char do |char|
|
16
|
+
if char == "\n"
|
17
|
+
if row.size > max_size
|
18
|
+
max_size = row.size
|
19
|
+
end
|
20
|
+
matrix << row
|
21
|
+
row = []
|
22
|
+
else
|
23
|
+
row << char
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
matrix.each do |row|
|
28
|
+
if row.size < max_size
|
29
|
+
(max_size - row.size).times do
|
30
|
+
row << ' '
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
if orientation == :right
|
36
|
+
matrix = matrix.transpose
|
37
|
+
else
|
38
|
+
matrix = matrix.reverse.transpose
|
39
|
+
end
|
40
|
+
|
41
|
+
matrix.each do |row|
|
42
|
+
if orientation == :right
|
43
|
+
puts row.join('')
|
44
|
+
else
|
45
|
+
puts row.reverse.join('')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
data/bin/ix-tree
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
path=`ix join '/'`
|
4
|
+
|
5
|
+
mkdir -p $path
|
6
|
+
|
7
|
+
first=`echo $path | ix split '/' | head -1`
|
8
|
+
|
9
|
+
tree $first
|
10
|
+
|
11
|
+
if [ "$first" == "/" ]; then
|
12
|
+
echo Cant delete root.
|
13
|
+
exit 1
|
14
|
+
else
|
15
|
+
command="rm -rf $first"
|
16
|
+
echo Delete command: $command
|
17
|
+
$command
|
18
|
+
fi
|
19
|
+
|
data/bin/ix-trim
ADDED
data/bin/ix-truncate
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'ostruct'
|
4
|
+
require 'optparse'
|
5
|
+
|
6
|
+
configuration = OpenStruct.new
|
7
|
+
|
8
|
+
configuration.limit = 80
|
9
|
+
|
10
|
+
OptionParser.new do |options|
|
11
|
+
options.banner = "USAGE: #{File.basename($0)} [OPTIONS]"
|
12
|
+
help_string = 'Read from stdin and dump each truncated line to limit -l [N] to stdout.'
|
13
|
+
parser = OptionParser::DecimalInteger
|
14
|
+
options.on('-l', '--limit [N]', parser, help_string) do |value|
|
15
|
+
configuration.limit = value
|
16
|
+
end
|
17
|
+
end.parse!
|
18
|
+
|
19
|
+
STDIN.each_line do |line|
|
20
|
+
puts line[0..configuration.limit]
|
21
|
+
end
|
22
|
+
|
data/bin/ix-ts
ADDED
data/bin/ix-tsv-to-json
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
TAB_REGEX = /\t/
|
6
|
+
|
7
|
+
STDIN.each_line do |line|
|
8
|
+
output_object = {}
|
9
|
+
fields = line.split(TAB_REGEX)
|
10
|
+
ARGV.each_with_index do |argument, index|
|
11
|
+
output_object[argument] = fields[index]
|
12
|
+
end
|
13
|
+
puts output_object.to_json
|
14
|
+
end
|
15
|
+
|
data/bin/ix-ucwords
ADDED
data/bin/ix-unescape
ADDED
data/bin/ix-unhtml
ADDED
data/bin/ix-upcase
ADDED
data/bin/ix-url-check
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'net/http'
|
4
|
+
|
5
|
+
$running = true
|
6
|
+
|
7
|
+
trap('INT') { $running = false }
|
8
|
+
|
9
|
+
STDIN.each do |line|
|
10
|
+
|
11
|
+
break unless $running
|
12
|
+
|
13
|
+
begin
|
14
|
+
|
15
|
+
uri = URI(line.chomp)
|
16
|
+
start = Time.now.to_f
|
17
|
+
res = Net::HTTP.get_response(uri)
|
18
|
+
finish = Time.now.to_f
|
19
|
+
bench = (finish - start)
|
20
|
+
puts "#{res.code} #{uri}"
|
21
|
+
rescue => e
|
22
|
+
puts "ERROR: #{e.message} #{uri}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
data/bin/ix-urls
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
scrappers = []
|
4
|
+
results = []
|
5
|
+
|
6
|
+
class QuotedUrlScrapper
|
7
|
+
REGEX = /"\w+:\/\/[^"]+"/
|
8
|
+
def initialize(text)
|
9
|
+
@text = text
|
10
|
+
end
|
11
|
+
def get_urls
|
12
|
+
@text.scan(REGEX).map do |url|
|
13
|
+
url.chop!
|
14
|
+
url.reverse.chop.reverse
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class TextUrlScrapper
|
20
|
+
REGEX = /\w+:\/\/[^\s]+/
|
21
|
+
def initialize(text)
|
22
|
+
@text = text
|
23
|
+
end
|
24
|
+
def get_urls
|
25
|
+
@text.scan(REGEX).map do |url|
|
26
|
+
url.gsub!(/".*/, '')
|
27
|
+
url.gsub!(/'.*/, '')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
scrappers.push(QuotedUrlScrapper)
|
33
|
+
scrappers.push(TextUrlScrapper)
|
34
|
+
|
35
|
+
STDIN.each_line do |line|
|
36
|
+
scrappers.each do |scrapper|
|
37
|
+
parser = scrapper.new(line)
|
38
|
+
parser.get_urls.each do |url|
|
39
|
+
results << url
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
results.uniq.each do |url|
|
45
|
+
puts url
|
46
|
+
end
|
data/bin/ix-vim
ADDED
data/bin/ix-words
ADDED