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-xy
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'tmpdir'
|
4
|
+
require 'optparse'
|
5
|
+
|
6
|
+
options = {}
|
7
|
+
|
8
|
+
OptionParser.new do |opts|
|
9
|
+
|
10
|
+
opts.banner = "
|
11
|
+
#{File.basename($0)} - Creates png charts using x y data from text.
|
12
|
+
|
13
|
+
Reads two numeric columns from stdin (x, y)
|
14
|
+
and creates a png graphical chart.
|
15
|
+
|
16
|
+
Usage: cat data | #{File.basename($0)} [options]
|
17
|
+
"
|
18
|
+
|
19
|
+
opts.on("-tTITLE", "--title=TITLE", "title of chart") do |v|
|
20
|
+
options[:title] = v
|
21
|
+
end
|
22
|
+
|
23
|
+
opts.on("-xTEXT", "--x-label=TEXT", "label for x axis") do |v|
|
24
|
+
options[:x_label] = v
|
25
|
+
end
|
26
|
+
|
27
|
+
opts.on("-yTEXT", "--y-label=TEXT", "label for y axis") do |v|
|
28
|
+
options[:y_label] = v
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on("-oOUTPUT_NAME", "--output-name=OUTPUT_NAME", "name of output file (example: speed_vs_time") do |v|
|
32
|
+
options[:output] = v
|
33
|
+
end
|
34
|
+
|
35
|
+
end.parse!
|
36
|
+
|
37
|
+
unless options[:title]
|
38
|
+
options[:title] = 'title'
|
39
|
+
end
|
40
|
+
|
41
|
+
unless options[:x_label]
|
42
|
+
options[:x_label] = 'x'
|
43
|
+
end
|
44
|
+
|
45
|
+
unless options[:y_label]
|
46
|
+
options[:y_label] = 'y'
|
47
|
+
end
|
48
|
+
|
49
|
+
unless options[:output]
|
50
|
+
options[:output] = 'output'
|
51
|
+
end
|
52
|
+
|
53
|
+
Dir.mktmpdir do |dir|
|
54
|
+
|
55
|
+
data_path = "#{dir}/xy.data"
|
56
|
+
script_path = "#{dir}/script.gnuplot"
|
57
|
+
|
58
|
+
File.open(data_path, 'w+') do |file|
|
59
|
+
STDIN.each_line do |line|
|
60
|
+
file.puts line
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
File.open(script_path, 'w+') do |script|
|
65
|
+
script.puts "set term png size 800,600"
|
66
|
+
script.puts "set output \"#{options[:output]}.png\""
|
67
|
+
script.puts "set title \"#{options[:title]}\""
|
68
|
+
script.puts "set xlabel \"#{options[:x_label]}\""
|
69
|
+
script.puts "set ylabel \"#{options[:y_label]}\""
|
70
|
+
script.puts "set grid"
|
71
|
+
script.puts "set timestamp"
|
72
|
+
script.puts "plot '#{data_path}' notitle with points linecolor rgb '#FF0000'"
|
73
|
+
# script.puts "plot '#{data_path}' notitle with points linecolor rgb '#FF0000' pointtype 8"
|
74
|
+
script.puts "quit"
|
75
|
+
end
|
76
|
+
|
77
|
+
system "gnuplot #{script_path}"
|
78
|
+
puts "open #{options[:output]}.png"
|
79
|
+
|
80
|
+
end
|
81
|
+
|
data/bin/ix-zebra
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
|
5
|
+
options = {}
|
6
|
+
|
7
|
+
OptionParser.new do |opts|
|
8
|
+
|
9
|
+
opts.banner = "Usage: #{$0} [OPTIONS]"
|
10
|
+
|
11
|
+
opts.on('-v', '--vertical', 'Vertical.') do |value|
|
12
|
+
options[:vertical] = value
|
13
|
+
options[:horizontal] = !value
|
14
|
+
end
|
15
|
+
|
16
|
+
opts.on('-o', '--horizontal', 'Horizontal.') do |value|
|
17
|
+
options[:horizontal] = value
|
18
|
+
options[:vertical] = !value
|
19
|
+
end
|
20
|
+
|
21
|
+
opts.on('-t', '--tabs', 'Split by tabs instead of spaces.') do |value|
|
22
|
+
options[:horizontal] = true
|
23
|
+
options[:vertical] = false
|
24
|
+
options[:tabs] = true
|
25
|
+
# todo: implement.
|
26
|
+
end
|
27
|
+
|
28
|
+
opts.on('-c', '--colors [LIST]', 'Color transformations that will be applied. Example: red,green,normal') do |value|
|
29
|
+
options[:colors] = value.to_s.split(',').map { |x| x.to_sym }
|
30
|
+
end
|
31
|
+
|
32
|
+
end.parse!
|
33
|
+
|
34
|
+
required_options = []
|
35
|
+
required_options.each do |option|
|
36
|
+
unless options[option]
|
37
|
+
$stderr.puts "Can not run #{option.to_s} was not given."
|
38
|
+
exit 1
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
################################################################################
|
43
|
+
|
44
|
+
class FlipFlop
|
45
|
+
def initialize(options)
|
46
|
+
@options = options
|
47
|
+
@needle = -1
|
48
|
+
end
|
49
|
+
def resolve
|
50
|
+
@needle += 1
|
51
|
+
if @needle == @options.size
|
52
|
+
@needle = 0
|
53
|
+
end
|
54
|
+
@options[@needle]
|
55
|
+
end
|
56
|
+
def reset
|
57
|
+
@needle = -1
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
################################################################################
|
62
|
+
|
63
|
+
unless options[:vertical] || options[:horizontal]
|
64
|
+
options[:vertical] = true
|
65
|
+
end
|
66
|
+
|
67
|
+
if options[:colors] == []
|
68
|
+
if options[:vertical] == true
|
69
|
+
options[:colors] = [:green, :normal]
|
70
|
+
else
|
71
|
+
options[:colors] = [:green, :normal, :blue, :red]
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
if options[:colors] == nil
|
76
|
+
if options[:vertical] == true
|
77
|
+
options[:colors] = [:green, :normal]
|
78
|
+
else
|
79
|
+
options[:colors] = [:green, :normal, :blue, :red]
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
flip_flop = FlipFlop.new(options[:colors])
|
84
|
+
|
85
|
+
SPACES_REGEX = /^\s+$/
|
86
|
+
TOKEN_REGEX = /(\s+|[^\s]+)/
|
87
|
+
|
88
|
+
require 'isna'
|
89
|
+
|
90
|
+
$stdout.sync = true
|
91
|
+
$stdin.sync = true
|
92
|
+
|
93
|
+
STDIN.each_line do |line|
|
94
|
+
line.chomp!
|
95
|
+
|
96
|
+
if options[:vertical]
|
97
|
+
color = flip_flop.resolve
|
98
|
+
puts line.to_ansi.normal.send(color).to_s
|
99
|
+
next
|
100
|
+
end
|
101
|
+
|
102
|
+
tokens = line.split(TOKEN_REGEX)
|
103
|
+
|
104
|
+
# puts tokens.inspect
|
105
|
+
|
106
|
+
flip_flop.reset
|
107
|
+
|
108
|
+
tokens.each do |token|
|
109
|
+
next if token == ''
|
110
|
+
if token =~ SPACES_REGEX
|
111
|
+
print token
|
112
|
+
next
|
113
|
+
end
|
114
|
+
color = flip_flop.resolve
|
115
|
+
# print (color.to_s + "(#{token}) ")
|
116
|
+
print token.to_ansi.normal.send(color).to_s
|
117
|
+
end
|
118
|
+
|
119
|
+
print "\n"
|
120
|
+
|
121
|
+
end
|
122
|
+
|