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-catan
ADDED
data/bin/ix-chain
ADDED
data/bin/ix-chars
ADDED
data/bin/ix-checklist
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
|
4
|
+
template = "
|
5
|
+
<p>
|
6
|
+
<input id='%s' type='checkbox' />
|
7
|
+
<label for='%s'>
|
8
|
+
%s
|
9
|
+
</label>
|
10
|
+
</p>
|
11
|
+
"
|
12
|
+
|
13
|
+
counter = 0
|
14
|
+
|
15
|
+
STDIN.each_line do |line|
|
16
|
+
counter += 1
|
17
|
+
id = "item_#{counter}"
|
18
|
+
bindings = []
|
19
|
+
bindings.push(id)
|
20
|
+
bindings.push(id)
|
21
|
+
bindings.push(line.chomp)
|
22
|
+
puts template % bindings
|
23
|
+
end
|
data/bin/ix-child-math
ADDED
data/bin/ix-chomp
ADDED
data/bin/ix-chr
ADDED
data/bin/ix-class
ADDED
data/bin/ix-columns
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'tmpdir'
|
4
|
+
|
5
|
+
# decomposes each line into columns
|
6
|
+
# applying transformations on each column.
|
7
|
+
|
8
|
+
class Formatter
|
9
|
+
REGEX = /(\d+)(\:)([^$]+)/
|
10
|
+
def initialize(string)
|
11
|
+
@string = string
|
12
|
+
end
|
13
|
+
def valid?
|
14
|
+
@string =~ REGEX
|
15
|
+
end
|
16
|
+
def column
|
17
|
+
@string.scan(REGEX)[0][0].to_i
|
18
|
+
end
|
19
|
+
def processor
|
20
|
+
@string.scan(REGEX)[0][2]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def resolve_processor(column)
|
25
|
+
end
|
26
|
+
|
27
|
+
SPLITTER = /\s+/
|
28
|
+
|
29
|
+
STDIN.each_line do |line|
|
30
|
+
output = []
|
31
|
+
columns = line.chomp.split(SPLITTER)
|
32
|
+
|
33
|
+
ARGV.each do |value|
|
34
|
+
formatter = Formatter.new(value)
|
35
|
+
next unless formatter.valid?
|
36
|
+
output.push(`echo #{columns[formatter.column]} | #{formatter.processor}`.chomp)
|
37
|
+
end
|
38
|
+
|
39
|
+
puts output * ' '
|
40
|
+
end
|
41
|
+
|
data/bin/ix-combinations
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
attributes = ARGV[1..(ARGV.size - 1)]
|
4
|
+
|
5
|
+
template = attributes.map do |attribute|
|
6
|
+
"%<#{attribute}>s"
|
7
|
+
end
|
8
|
+
|
9
|
+
template = (template * ' ').inspect
|
10
|
+
|
11
|
+
puts "class #{ARGV[0]}"
|
12
|
+
puts "ATTRIBUTES = #{attributes.inspect}"
|
13
|
+
puts "TEMPLATE = #{template}"
|
14
|
+
attributes.each do |attribute|
|
15
|
+
puts " attr_accessor :#{attribute}"
|
16
|
+
end
|
17
|
+
puts "def to_s"
|
18
|
+
puts "end"
|
19
|
+
puts "def execute"
|
20
|
+
puts "end"
|
21
|
+
puts "end"
|
data/bin/ix-commandify
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
def commandify(string)
|
4
|
+
words = {}
|
5
|
+
interpolation_buffer = []
|
6
|
+
string.scan(/\w+/).each do |word|
|
7
|
+
word.downcase!
|
8
|
+
interpolation_buffer.push(word)
|
9
|
+
end
|
10
|
+
interpolation = (interpolation_buffer * '_')
|
11
|
+
words[string] = "%<#{interpolation}>s"
|
12
|
+
words
|
13
|
+
end
|
14
|
+
|
15
|
+
STDIN.each_line do |line|
|
16
|
+
line = line.chomp!
|
17
|
+
hash = commandify(line)
|
18
|
+
hash.each do |k, v|
|
19
|
+
puts "#{k} #{v}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
data/bin/ix-commit
ADDED
data/bin/ix-confirm
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
commands = []
|
4
|
+
|
5
|
+
File.read(ARGV[0]).each_line do |line|
|
6
|
+
commands.push(line.chomp)
|
7
|
+
end
|
8
|
+
|
9
|
+
commands.each do |command|
|
10
|
+
|
11
|
+
puts "confirm: #{command}"
|
12
|
+
|
13
|
+
x = gets
|
14
|
+
|
15
|
+
puts x
|
16
|
+
|
17
|
+
# puts "Confirm (abort, skip, yes, or y): #{command} "
|
18
|
+
|
19
|
+
# puts "response: #{response.inspect}"
|
20
|
+
|
21
|
+
# next
|
22
|
+
|
23
|
+
# if response == "abort\n"
|
24
|
+
# puts 'Exiting now..'
|
25
|
+
# exit 0
|
26
|
+
# end
|
27
|
+
|
28
|
+
# if response == "skip\n"
|
29
|
+
# puts 'Skipping..'
|
30
|
+
# next
|
31
|
+
# end
|
32
|
+
|
33
|
+
# if response == "yes\n"
|
34
|
+
# puts 'Executing..'
|
35
|
+
# system command
|
36
|
+
# next
|
37
|
+
# end
|
38
|
+
|
39
|
+
# if response == "y\n"
|
40
|
+
# puts 'Executing..'
|
41
|
+
# system command
|
42
|
+
# next
|
43
|
+
# end
|
44
|
+
|
45
|
+
# puts 'doing nothing..'
|
46
|
+
|
47
|
+
end
|
data/bin/ix-constants
ADDED
data/bin/ix-cp
ADDED
data/bin/ix-crack
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# ==============================================================================
|
4
|
+
# Array hack.
|
5
|
+
# ==============================================================================
|
6
|
+
# from: https://apidock.com/rails/Array/in_groups_of
|
7
|
+
# File activesupport/lib/active_support/core_ext/array/grouping.rb, line 20
|
8
|
+
class Array
|
9
|
+
def in_groups_of(number, fill_with = nil)
|
10
|
+
if number.to_i <= 0
|
11
|
+
raise ArgumentError,
|
12
|
+
"Group size must be a positive integer, was #{number.inspect}"
|
13
|
+
end
|
14
|
+
|
15
|
+
if fill_with == false
|
16
|
+
collection = self
|
17
|
+
else
|
18
|
+
# size % number gives how many extra we have;
|
19
|
+
# subtracting from number gives how many to add;
|
20
|
+
# modulo number ensures we don't add group of just fill.
|
21
|
+
padding = (number - size % number) % number
|
22
|
+
collection = dup.concat(Array.new(padding, fill_with))
|
23
|
+
end
|
24
|
+
|
25
|
+
if block_given?
|
26
|
+
collection.each_slice(number) { |slice| yield(slice) }
|
27
|
+
else
|
28
|
+
collection.each_slice(number).to_a
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# ==============================================================================
|
34
|
+
# CRACK IMPLEMENTATION.
|
35
|
+
# ==============================================================================
|
36
|
+
|
37
|
+
require 'tmpdir'
|
38
|
+
require 'json'
|
39
|
+
|
40
|
+
class Crack
|
41
|
+
|
42
|
+
MASTER_FUNCTION = %q{
|
43
|
+
trap "exit 1" SIGQUIT
|
44
|
+
function run_crack_file() {
|
45
|
+
$* 2>&1
|
46
|
+
if [ "$?" != "0" ]; then
|
47
|
+
kill -SIGQUIT $$
|
48
|
+
fi
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
SET_FUNCTION = %q{
|
53
|
+
function run_command() {
|
54
|
+
uuid=`uuidgen`
|
55
|
+
echo $* > /tmp/$uuid
|
56
|
+
data=`bash /tmp/$uuid 2>&1`
|
57
|
+
status=$?
|
58
|
+
if [ "$status" != "0" ]; then
|
59
|
+
echo "$uuid NG $*"
|
60
|
+
echo "$data" | sed "s/^/`date +%s` `echo $uuid` /"
|
61
|
+
rm /tmp/$uuid
|
62
|
+
exit 1
|
63
|
+
else
|
64
|
+
echo "$uuid OK $*"
|
65
|
+
echo "$data" | sed "s/^/`date +%s` `echo $uuid` /"
|
66
|
+
rm /tmp/$uuid
|
67
|
+
fi
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
# Crack - The most lines of crack you do, the best it will feel.
|
72
|
+
#
|
73
|
+
# Receives a *queue* array of system commands to be executed.
|
74
|
+
# and executes them in parallel using a subshelling optimization.
|
75
|
+
#
|
76
|
+
# You may wonder what is the behavior of this parallelization.
|
77
|
+
# Is it asynchronous or synchronous?
|
78
|
+
#
|
79
|
+
# Crack is Asynchronous by nature because it is parallelizing
|
80
|
+
# execution. But it will hide all that handling complexity within
|
81
|
+
# itself. And it will not return until all of the asynchronicity
|
82
|
+
# chaos has been dealt with. So you can assume that it is asynchronous
|
83
|
+
# internally but this method will return only after all the executions
|
84
|
+
# finished.
|
85
|
+
#
|
86
|
+
# threads Fixnum can never be zero, an exception will be thrown.
|
87
|
+
# queue Array size can never be zero, an exception will be thrown.
|
88
|
+
#
|
89
|
+
def self.schedule(queue, threads = 16)
|
90
|
+
Dir.mktmpdir do |directory|
|
91
|
+
chunk_size = queue.size / threads
|
92
|
+
chunk_size = 1 if chunk_size == 0
|
93
|
+
master_file = "#{directory}/master.crack"
|
94
|
+
File.open(master_file, 'w+') do |master_file|
|
95
|
+
master_file.puts MASTER_FUNCTION
|
96
|
+
sets = queue.in_groups_of(chunk_size)
|
97
|
+
sets.each_with_index do |set, set_index|
|
98
|
+
set_file_name = "#{directory}/set_#{set_index}.crack"
|
99
|
+
if set_index == sets.size - 1
|
100
|
+
master_file.puts 'run_crack_file "bash ' + set_file_name + '"'
|
101
|
+
else
|
102
|
+
master_file.puts 'run_crack_file "bash ' + set_file_name + '" &'
|
103
|
+
end
|
104
|
+
File.open(set_file_name, 'w+') do |set_file|
|
105
|
+
set_file.puts SET_FUNCTION
|
106
|
+
set.compact.each do |item|
|
107
|
+
set_file.puts "run_command #{item.inspect}"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
master_file.puts 'wait'
|
112
|
+
end
|
113
|
+
|
114
|
+
# Detects exit status of zero
|
115
|
+
# if process exits with error on ubuntu, fucked up right?.
|
116
|
+
# system "bash #{master_file} &> #{directory}/crack.log"
|
117
|
+
system "bash #{master_file} >>#{directory}/crack.log 2>&1"
|
118
|
+
|
119
|
+
File.read("#{directory}/crack.log").each_line do |line|
|
120
|
+
info = {
|
121
|
+
:trace => line.chomp,
|
122
|
+
:threads => threads
|
123
|
+
}
|
124
|
+
puts info.to_json
|
125
|
+
end
|
126
|
+
|
127
|
+
unless $?.success?
|
128
|
+
data = {
|
129
|
+
:queue => queue,
|
130
|
+
:threads => threads,
|
131
|
+
:time => Time.now.to_i
|
132
|
+
}
|
133
|
+
sleep 2 # process exits, but data is still streaming.
|
134
|
+
File.open("#{directory}/crack.log", 'a+') do |file|
|
135
|
+
file.puts data.inspect
|
136
|
+
end
|
137
|
+
debug_file = "/tmp/crack_debug_#{Time.now.to_f}.log"
|
138
|
+
system "cp #{directory}/crack.log #{debug_file}"
|
139
|
+
raise "Commands given to crack break, please debug: #{debug_file}"
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
146
|
+
|
147
|
+
# ==============================================================================
|
148
|
+
# IX CLIENT CODE.
|
149
|
+
# ==============================================================================
|
150
|
+
|
151
|
+
commands = []
|
152
|
+
|
153
|
+
STDIN.each_line do |line|
|
154
|
+
commands.push(line.chomp)
|
155
|
+
end
|
156
|
+
|
157
|
+
threads = ARGV[0] || 4
|
158
|
+
threads = threads.to_i
|
159
|
+
|
160
|
+
|
161
|
+
Crack.schedule(commands, threads)
|
162
|
+
|
163
|
+
|
data/bin/ix-crap
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
regex = /[a-z0-9A-Z]+/
|
4
|
+
|
5
|
+
replace = ARGV[0] || 'crap'
|
6
|
+
|
7
|
+
needle = 0
|
8
|
+
|
9
|
+
upper_case_chars = ('A'..'Z').to_a
|
10
|
+
|
11
|
+
STDIN.each_char do |char|
|
12
|
+
if char =~ regex
|
13
|
+
if upper_case_chars.include?(char)
|
14
|
+
print replace[needle].upcase
|
15
|
+
else
|
16
|
+
print replace[needle]
|
17
|
+
end
|
18
|
+
needle += 1
|
19
|
+
if needle == replace.size
|
20
|
+
needle = 0
|
21
|
+
end
|
22
|
+
else
|
23
|
+
print char
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
data/bin/ix-crazy-case
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
target = ARGV[0].to_i
|
4
|
+
|
5
|
+
STDIN.each_line do |line|
|
6
|
+
puts ''
|
7
|
+
puts 'node = ClusterNode.new'
|
8
|
+
puts "node.ip = #{line.chomp.inspect}"
|
9
|
+
puts "node.target = 'fusion#{target}'"
|
10
|
+
puts "node.name = 'Fusion Render Node #{target}'"
|
11
|
+
puts "node.enabled = false"
|
12
|
+
puts "node.save!"
|
13
|
+
target += 1
|
14
|
+
end
|
15
|
+
|
data/bin/ix-csv-to-json
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'json'
|
5
|
+
require 'csv'
|
6
|
+
|
7
|
+
STDIN.each_line do |line|
|
8
|
+
CSV.parse(line.force_encoding("iso-8859-1").encode("utf-8")) do |row|
|
9
|
+
object = {}
|
10
|
+
row.size.times do |column|
|
11
|
+
key = ARGV[column] || "column-#{column}"
|
12
|
+
object[key] = row[column]
|
13
|
+
end
|
14
|
+
puts object.to_json
|
15
|
+
end
|
16
|
+
end
|
data/bin/ix-day
ADDED
data/bin/ix-debugging
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class Counter
|
4
|
+
class << self
|
5
|
+
def get
|
6
|
+
File.read('/tmp/counter').to_i
|
7
|
+
end
|
8
|
+
def set(value)
|
9
|
+
File.open('/tmp/counter', 'w+') do |file|
|
10
|
+
file.puts(value)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
def increase
|
14
|
+
set(get + 1)
|
15
|
+
end
|
16
|
+
def decrease
|
17
|
+
set(get - 1)
|
18
|
+
end
|
19
|
+
def to_human
|
20
|
+
get.to_s.rjust(4, '0')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
STDIN.each_line do |line|
|
27
|
+
puts ''
|
28
|
+
Counter.increase
|
29
|
+
puts "#{Counter.to_human} - Debugging: #{ARGV[0]}: #{line.chomp}"
|
30
|
+
puts '--------------------------------------------------------------------------------'
|
31
|
+
puts ''
|
32
|
+
end
|
33
|
+
|
data/bin/ix-dequote
ADDED
data/bin/ix-df
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# /dev/xvdi 2.9T 1.2T 1.7T 42% /ebs/stage-new
|
4
|
+
|
5
|
+
STDIN.each_line do |line|
|
6
|
+
puts ''
|
7
|
+
chunks = line.chomp.split(/\s+/)
|
8
|
+
puts "Device: #{chunks[0]}"
|
9
|
+
puts "Total Size: #{chunks[1]}"
|
10
|
+
puts "Space Used: #{chunks[2]}"
|
11
|
+
puts "Space Available: #{chunks[3]}"
|
12
|
+
puts "Percentage Used: #{chunks[4]}"
|
13
|
+
puts "Mount Point: #{chunks[5]}"
|
14
|
+
end
|
15
|
+
|
data/bin/ix-diagram
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'tree_node'
|
4
|
+
|
5
|
+
class Node
|
6
|
+
include Tree::Node
|
7
|
+
attr_accessor :level
|
8
|
+
attr_accessor :label
|
9
|
+
def initialize(level, label)
|
10
|
+
@level = level
|
11
|
+
@label = label
|
12
|
+
end
|
13
|
+
def to_s
|
14
|
+
"<Node level:#{level}, label:#{label}, children: #{children.size}>"
|
15
|
+
end
|
16
|
+
def relations
|
17
|
+
children.map do |child|
|
18
|
+
"#{label.inspect} -> #{child.label.inspect}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
SPACER = /\s\s\s\s/
|
24
|
+
|
25
|
+
nodes = []
|
26
|
+
|
27
|
+
STDIN.each_line do |line|
|
28
|
+
label = line.chomp.gsub(SPACER, '')
|
29
|
+
level = line.chomp.scan(SPACER).size
|
30
|
+
node = Node.new(level, label)
|
31
|
+
nodes.push(node)
|
32
|
+
nodes.reverse.find do |previous_node|
|
33
|
+
if previous_node.level < node.level
|
34
|
+
previous_node.add_child(node)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
puts 'digraph diagram {'
|
40
|
+
puts "rankdir = #{ARGV[0] || 'LR'};"
|
41
|
+
nodes.first.map(:down) do |node|
|
42
|
+
node.relations.each do |relation|
|
43
|
+
puts relation
|
44
|
+
end
|
45
|
+
end
|
46
|
+
puts '}'
|
47
|
+
|
data/bin/ix-dirname
ADDED
data/bin/ix-divide
ADDED
data/bin/ix-done
ADDED
data/bin/ix-dot-case
ADDED