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-ruby-methods
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class Attribute
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :space
|
6
|
+
def initialize(name, space)
|
7
|
+
@name = name
|
8
|
+
@space = space
|
9
|
+
end
|
10
|
+
def to_s
|
11
|
+
raise 'child must implement'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class SimpleMethod < Attribute
|
16
|
+
def to_s
|
17
|
+
"\n#{space}def #{name}\n#{space}end"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
names = []
|
22
|
+
objects = []
|
23
|
+
|
24
|
+
STDIN.each_line do |line|
|
25
|
+
name = line.chomp
|
26
|
+
space = name.scan(/^\s+/)[0].to_s
|
27
|
+
name = name.gsub(/^\s+/, '')
|
28
|
+
name = name.gsub(/\W+/, '_')
|
29
|
+
name = name.downcase
|
30
|
+
names.push(name)
|
31
|
+
objects.push(SimpleMethod.new(name, space))
|
32
|
+
end
|
33
|
+
|
34
|
+
names.sort.each do |name|
|
35
|
+
objects.each do |object|
|
36
|
+
if object.name == name
|
37
|
+
puts object
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/bin/ix-ruby-options
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
WORDS_REGEX = /[a-zA-Z]+/
|
4
|
+
EMPTY_LINE = /^\s+$/
|
5
|
+
USEFUL_OPTIONS = []
|
6
|
+
|
7
|
+
class String
|
8
|
+
|
9
|
+
def ucword
|
10
|
+
result = ''
|
11
|
+
count = 0
|
12
|
+
each_char.each do |char|
|
13
|
+
count += 1
|
14
|
+
if count == 1
|
15
|
+
result << char.upcase
|
16
|
+
else
|
17
|
+
result << char.downcase
|
18
|
+
end
|
19
|
+
end
|
20
|
+
result
|
21
|
+
end
|
22
|
+
|
23
|
+
def ucword!
|
24
|
+
replace ucword
|
25
|
+
end
|
26
|
+
|
27
|
+
def chars
|
28
|
+
scan(/./)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
class UsefulOption
|
34
|
+
|
35
|
+
def self.short_flags
|
36
|
+
@short_flags ||= [
|
37
|
+
"A",
|
38
|
+
"B",
|
39
|
+
"C",
|
40
|
+
"D",
|
41
|
+
"E",
|
42
|
+
"F",
|
43
|
+
"G",
|
44
|
+
"H",
|
45
|
+
"I",
|
46
|
+
"J",
|
47
|
+
"K",
|
48
|
+
"L",
|
49
|
+
"M",
|
50
|
+
"N",
|
51
|
+
"O",
|
52
|
+
"P",
|
53
|
+
"Q",
|
54
|
+
"R",
|
55
|
+
"S",
|
56
|
+
"T",
|
57
|
+
"U",
|
58
|
+
"V",
|
59
|
+
"W",
|
60
|
+
"X",
|
61
|
+
"Y",
|
62
|
+
"Z",
|
63
|
+
"h"
|
64
|
+
]
|
65
|
+
end
|
66
|
+
|
67
|
+
def initialize(words_array)
|
68
|
+
unless words_array.is_a?(Array)
|
69
|
+
raise "not a valid option: #{words_array}"
|
70
|
+
end
|
71
|
+
if words_array.size == 0
|
72
|
+
raise "empty option: #{words_array.inspect}"
|
73
|
+
end
|
74
|
+
@words_array = words_array
|
75
|
+
end
|
76
|
+
|
77
|
+
def _find_and_assign_short_flag_from_chars(chars)
|
78
|
+
found = false
|
79
|
+
selected_char = nil
|
80
|
+
|
81
|
+
chars.each do |char|
|
82
|
+
unless self.class.short_flags.include?(char)
|
83
|
+
self.class.short_flags.push(char)
|
84
|
+
selected_char = char
|
85
|
+
found = true
|
86
|
+
break
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
[found, selected_char]
|
91
|
+
end
|
92
|
+
|
93
|
+
def to_short_flag
|
94
|
+
selected_char = nil
|
95
|
+
found = false
|
96
|
+
|
97
|
+
@words_array.each do |word|
|
98
|
+
found, selected_char = _find_and_assign_short_flag_from_chars(word.downcase.chars)
|
99
|
+
break if found
|
100
|
+
end
|
101
|
+
|
102
|
+
unless found
|
103
|
+
found, selected_char = _find_and_assign_short_flag_from_chars(('a'..'z').to_a)
|
104
|
+
end
|
105
|
+
|
106
|
+
unless found
|
107
|
+
$stderr.puts "Cant assing short flag!"
|
108
|
+
$stderr.puts "Probably using too many opts?"
|
109
|
+
$stderr.puts self.class.short_flags.inspect
|
110
|
+
exit 1
|
111
|
+
end
|
112
|
+
|
113
|
+
'-' + selected_char
|
114
|
+
end
|
115
|
+
|
116
|
+
def to_long_flag
|
117
|
+
words = @words_array.dup
|
118
|
+
words.map! do |word|
|
119
|
+
word.downcase
|
120
|
+
end
|
121
|
+
'--' + (words * '-')
|
122
|
+
end
|
123
|
+
|
124
|
+
def to_symbol
|
125
|
+
words = @words_array.dup
|
126
|
+
words.map! do |word|
|
127
|
+
word.downcase
|
128
|
+
end
|
129
|
+
(words * '_').to_sym
|
130
|
+
end
|
131
|
+
|
132
|
+
def to_description
|
133
|
+
words = @words_array.dup
|
134
|
+
words.map! do |word|
|
135
|
+
word.downcase
|
136
|
+
end
|
137
|
+
words.first.ucword!
|
138
|
+
(words * ' ') + '.'
|
139
|
+
end
|
140
|
+
|
141
|
+
def to_optparse
|
142
|
+
string = ''
|
143
|
+
string << " opts.on('#{to_short_flag}', '#{to_long_flag}', '#{to_description}') do |value|\n"
|
144
|
+
string << " options[#{to_symbol.inspect}] = value\n"
|
145
|
+
string << " end\n"
|
146
|
+
string << "\n"
|
147
|
+
string
|
148
|
+
end
|
149
|
+
|
150
|
+
end
|
151
|
+
|
152
|
+
STDIN.each_line do |line|
|
153
|
+
next if line =~ EMPTY_LINE
|
154
|
+
words = line.scan(WORDS_REGEX)
|
155
|
+
option = UsefulOption.new(words)
|
156
|
+
USEFUL_OPTIONS.push(option)
|
157
|
+
end
|
158
|
+
|
159
|
+
puts "require 'optparse'"
|
160
|
+
puts ""
|
161
|
+
puts "options = {}"
|
162
|
+
puts ""
|
163
|
+
puts "OptionParser.new do |opts|"
|
164
|
+
puts ""
|
165
|
+
puts " opts.banner = \"Usage: \#{$0} [OPTIONS]\""
|
166
|
+
puts ""
|
167
|
+
|
168
|
+
USEFUL_OPTIONS.each do |option|
|
169
|
+
puts option.to_optparse
|
170
|
+
end
|
171
|
+
|
172
|
+
puts ""
|
173
|
+
puts "end.parse!"
|
174
|
+
puts ""
|
175
|
+
|
176
|
+
puts "required_options = #{USEFUL_OPTIONS.map { |opt| opt.to_symbol }.inspect }"
|
177
|
+
puts 'required_options.each do |option|'
|
178
|
+
puts ' unless options[option]'
|
179
|
+
puts ' $stderr.puts "Can not run #{option.to_s} was not given."'
|
180
|
+
puts ' exit 1'
|
181
|
+
puts ' end'
|
182
|
+
puts 'end'
|
183
|
+
|
184
|
+
puts ""
|
185
|
+
|
186
|
+
puts "p options"
|
187
|
+
puts "p ARGV"
|
188
|
+
puts ""
|
189
|
+
|
data/bin/ix-ruby-procs
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class Attribute
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :space
|
6
|
+
def initialize(name, space)
|
7
|
+
@name = name
|
8
|
+
@space = space
|
9
|
+
end
|
10
|
+
def to_s
|
11
|
+
raise 'child must implement'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class SimpleMethod < Attribute
|
16
|
+
def to_s
|
17
|
+
"\n#{space}#{name} = proc do\n#{space}end"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
names = []
|
22
|
+
objects = []
|
23
|
+
|
24
|
+
STDIN.each_line do |line|
|
25
|
+
name = line.chomp
|
26
|
+
space = name.scan(/^\s+/)[0].to_s
|
27
|
+
name = name.gsub(/^\s+/, '')
|
28
|
+
name = name.gsub(/\W+/, '_')
|
29
|
+
name = name.downcase
|
30
|
+
names.push(name)
|
31
|
+
objects.push(SimpleMethod.new(name, space))
|
32
|
+
end
|
33
|
+
|
34
|
+
names.sort.each do |name|
|
35
|
+
objects.each do |object|
|
36
|
+
if object.name == name
|
37
|
+
puts object
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class Attribute
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :space
|
6
|
+
def initialize(name, space)
|
7
|
+
@name = name
|
8
|
+
@space = space
|
9
|
+
end
|
10
|
+
def to_s
|
11
|
+
raise 'child must implement'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class AttributeSetter < Attribute
|
16
|
+
def to_s
|
17
|
+
"\n#{space}def #{name}=(#{name})\n#{space} @#{name} = #{name}\n#{space}end"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class AttributeGetter < Attribute
|
22
|
+
def to_s
|
23
|
+
"\n#{space}def #{name}\n#{space} @#{name}\n#{space}end"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
names = []
|
28
|
+
objects = []
|
29
|
+
|
30
|
+
STDIN.each_line do |line|
|
31
|
+
name = line.chomp
|
32
|
+
space = name.scan(/^\s+/)[0].to_s
|
33
|
+
name = name.gsub(/^\s+/, '')
|
34
|
+
name = name.gsub(/\W+/, '_')
|
35
|
+
name = name.downcase
|
36
|
+
names.push(name)
|
37
|
+
objects.push(AttributeGetter.new(name, space))
|
38
|
+
objects.push(AttributeSetter.new(name, space))
|
39
|
+
end
|
40
|
+
|
41
|
+
names.sort.each do |name|
|
42
|
+
objects.each do |object|
|
43
|
+
if object.name == name
|
44
|
+
puts object
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/bin/ix-ruby-to-json
ADDED
data/bin/ix-ruler
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
PREFIX_REGEX = /^\s+/
|
4
|
+
|
5
|
+
LENGTH = (ARGV[0] || 78).to_i
|
6
|
+
|
7
|
+
STDIN.each_line do |line|
|
8
|
+
prefix = line.scan(PREFIX_REGEX)[0].to_s
|
9
|
+
puts ''
|
10
|
+
puts "#{prefix}# #{line.gsub(PREFIX_REGEX, '')}"
|
11
|
+
puts "#{prefix}# #{'=' * LENGTH}"
|
12
|
+
end
|
13
|
+
|
data/bin/ix-run
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'open3'
|
4
|
+
require 'pp'
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
class Shell
|
8
|
+
def self.execute(command)
|
9
|
+
stdout, stderr, status = Open3.capture3(ENV, command)
|
10
|
+
status = status.exitstatus
|
11
|
+
rescue StandardError => error
|
12
|
+
stdout = ""
|
13
|
+
stderr = error.message
|
14
|
+
status = 1
|
15
|
+
ensure
|
16
|
+
return stdout, stderr, status
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
class Command
|
22
|
+
|
23
|
+
REGEX = {
|
24
|
+
:comment => /^\s*#/,
|
25
|
+
:empty_line => /^\s*$/,
|
26
|
+
:variables => /[A-Z_]+=[^\s]+[\s]/,
|
27
|
+
:trailing_whitespace => /\s+$/
|
28
|
+
}
|
29
|
+
|
30
|
+
def initialize(string)
|
31
|
+
@command = string
|
32
|
+
end
|
33
|
+
|
34
|
+
def is_empty_line?
|
35
|
+
@command =~ REGEX[:empty_line]
|
36
|
+
end
|
37
|
+
|
38
|
+
def is_comment?
|
39
|
+
@command =~ REGEX[:comment]
|
40
|
+
end
|
41
|
+
|
42
|
+
def has_variables?
|
43
|
+
@command =~ REGEX[:variables]
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_variables
|
47
|
+
@command.scan(REGEX[:variables])
|
48
|
+
end
|
49
|
+
|
50
|
+
def get_comment
|
51
|
+
@command.gsub(REGEX[:comment], '')
|
52
|
+
end
|
53
|
+
|
54
|
+
def to_s
|
55
|
+
return @command unless has_variables?
|
56
|
+
command = @command
|
57
|
+
get_variables.each do |variable|
|
58
|
+
command.gsub!(variable, '')
|
59
|
+
key, value = variable.split('=')
|
60
|
+
value = value.gsub!(REGEX[:trailing_whitespace], '')
|
61
|
+
ENV[key] = value
|
62
|
+
end
|
63
|
+
command
|
64
|
+
end
|
65
|
+
|
66
|
+
def execute
|
67
|
+
stdout, stderr, status = Shell.execute(to_s)
|
68
|
+
hash = {
|
69
|
+
:timestamp => Time.now.to_f,
|
70
|
+
:stdout => stdout,
|
71
|
+
:stderr => stderr,
|
72
|
+
:status => status,
|
73
|
+
:command => to_s
|
74
|
+
}
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
counter = 0
|
80
|
+
|
81
|
+
STDIN.each_line do |line|
|
82
|
+
command = Command.new(line.chomp)
|
83
|
+
|
84
|
+
if command.is_empty_line?
|
85
|
+
next
|
86
|
+
end
|
87
|
+
|
88
|
+
if command.is_comment?
|
89
|
+
# puts "# comment:#{command.get_comment}"
|
90
|
+
next
|
91
|
+
end
|
92
|
+
|
93
|
+
command.get_variables.each do |variable|
|
94
|
+
# puts "# setup env var: #{variable}"
|
95
|
+
next
|
96
|
+
end
|
97
|
+
|
98
|
+
counter += 1
|
99
|
+
|
100
|
+
hash = command.execute
|
101
|
+
hash[:count] = counter
|
102
|
+
|
103
|
+
puts hash.to_json
|
104
|
+
|
105
|
+
end
|
data/bin/ix-saldo
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
AMOUNT_REGEX = /^[^ ]+/
|
6
|
+
|
7
|
+
balance = 0
|
8
|
+
|
9
|
+
STDIN.each_line do |line|
|
10
|
+
|
11
|
+
amount = line.scan(AMOUNT_REGEX)[0].to_f
|
12
|
+
description = line.gsub(AMOUNT_REGEX, '')
|
13
|
+
balance += amount
|
14
|
+
|
15
|
+
description.chomp!
|
16
|
+
description.gsub!(/^\s+/, '')
|
17
|
+
|
18
|
+
object = {}
|
19
|
+
object[:description] = description
|
20
|
+
object[:amount] = amount
|
21
|
+
object[:balance] = balance
|
22
|
+
puts object.to_json
|
23
|
+
|
24
|
+
end
|
25
|
+
|
data/bin/ix-sat
ADDED
data/bin/ix-scan
ADDED
data/bin/ix-scrum
ADDED
data/bin/ix-sentence
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# begin
|
4
|
+
STDIN.each_line do |line|
|
5
|
+
line.chomp!
|
6
|
+
line.gsub!(/(^\w)|(^\s+\w)/) { |m| m.upcase }
|
7
|
+
line.gsub!(/\s\+$/, '')
|
8
|
+
line.gsub!(/_/, ' ')
|
9
|
+
if line[line.size - 1] == '.'
|
10
|
+
puts line
|
11
|
+
else
|
12
|
+
if line.size > 0 # avoid '.' as output
|
13
|
+
puts line + '.'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# rescue => e
|
19
|
+
# puts e.message
|
20
|
+
# e.backtrace.each do |line|
|
21
|
+
# puts line
|
22
|
+
# end
|
23
|
+
# end
|
data/bin/ix-show-tabs
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'isna'
|
4
|
+
|
5
|
+
"\\1\e[0;0;34m<--- space\e[0m"
|
6
|
+
STDIN.each_line do |line|
|
7
|
+
spaces = line.gsub(/([ ]+$)/, "[\\1]".to_ansi.negative.underline.red.blink.to_s + '<--- space'.to_ansi.red.to_s)
|
8
|
+
tabs = spaces.gsub(/(\t+$)/, "\\1\e[0;0;41m<--- tab\e[0m")
|
9
|
+
print tabs
|
10
|
+
end
|
data/bin/ix-shuffle
ADDED
data/bin/ix-signature
ADDED