ix-cli 0.0.1
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 +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