cmdline-fu 0.1.2 → 0.1.3
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.
- data/Manifest +1 -0
- data/README.md +47 -9
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/cmdline-fu +129 -87
- data/cmdline-fu.gemspec +3 -6
- data/example/dot.cmdline-fu.conf +30 -0
- metadata +5 -20
data/Manifest
CHANGED
data/README.md
CHANGED
@@ -6,22 +6,58 @@ commandlinefu is community based repository for usefull commandline such as one-
|
|
6
6
|
This script scrape available TAG from site's top page with `hpricot` for supporting query based on TAG.
|
7
7
|
TAGS file are stored to `~/.cmdline-fu.tags`.
|
8
8
|
|
9
|
-
|
9
|
+
Install
|
10
|
+
----------------------------------
|
11
|
+
gem install cmdline-fu
|
10
12
|
|
11
|
-
## Install:
|
12
13
|
|
13
|
-
|
14
|
+
Sample Configuration("~/.cmdline-fu.conf")
|
15
|
+
----------------------------------
|
16
|
+
{
|
17
|
+
#--------------------------------------------------------
|
18
|
+
# Proxy setting. you can overwrite this
|
19
|
+
# with HTTP_PROXY environment variable
|
20
|
+
#--------------------------------------------------------
|
21
|
+
# :http_proxy_ => 'http://192.168.1.1:3128',
|
14
22
|
|
15
|
-
|
23
|
+
#--------------------------------------------------------
|
24
|
+
# Disable colorized output
|
25
|
+
#--------------------------------------------------------
|
26
|
+
#:colorize => false,
|
16
27
|
|
17
|
-
|
28
|
+
#--------------------------------------------------------
|
29
|
+
# Supported colors are...
|
30
|
+
# black red green yellow blue magenta cyan white
|
31
|
+
#--------------------------------------------------------
|
32
|
+
:color_match => 'yellow',
|
33
|
+
:color_desc => 'cyan',
|
34
|
+
:color_footer => 'green',
|
35
|
+
|
36
|
+
#--------------------------------------------------------
|
37
|
+
# Web Browser command used such as 'cmdline-fu browse o'.
|
38
|
+
#--------------------------------------------------------
|
39
|
+
# for linux
|
40
|
+
:browse_cmd => 'firefox',
|
41
|
+
# :browse_cmd => 'google-chrome',
|
42
|
+
|
43
|
+
# Mac OSX's default
|
44
|
+
# :browse_cmd => 'open',
|
45
|
+
}
|
46
|
+
|
47
|
+
Usage
|
48
|
+
----------------------------------
|
49
|
+
|
50
|
+
cmdline-fu COMMAND [PAGE] [o] [-n]
|
18
51
|
|
19
52
|
COMMAND: list_tag [MATCHER], browse, using WORD, by USER, tagged TAG, matching WORD
|
20
53
|
PAGE: 1-999 (defaut: 1)
|
21
|
-
o:
|
22
|
-
|
23
|
-
## Example
|
54
|
+
o: open in browser
|
55
|
+
-n: not colorize
|
24
56
|
|
57
|
+
Example
|
58
|
+
----------------------------------
|
59
|
+
|
60
|
+
cmdline-fu renew_tag
|
25
61
|
cmdline-fu list_tag
|
26
62
|
cmdline-fu list_tag vm
|
27
63
|
cmdline-fu browse
|
@@ -31,9 +67,11 @@ TAGS file are stored to `~/.cmdline-fu.tags`.
|
|
31
67
|
cmdline-fu tagged install
|
32
68
|
cmdline-fu matching find
|
33
69
|
|
34
|
-
|
70
|
+
Abbreviation
|
71
|
+
----------------------------------
|
35
72
|
Unique abbreviation for command is supported.
|
36
73
|
|
74
|
+
cmdline-fu r
|
37
75
|
cmdline-fu l
|
38
76
|
cmdline-fu l vm
|
39
77
|
cmdline-fu br
|
data/Rakefile
CHANGED
@@ -10,5 +10,5 @@ Echoe.new "cmdline-fu", File.read("./VERSION").chomp do |p|
|
|
10
10
|
p.rubyforge_name = nil
|
11
11
|
p.url = "http://github.com/t9md/cmdline-fu"
|
12
12
|
p.runtime_dependencies << 'colored'
|
13
|
-
p.runtime_dependencies << 'hpricot >=0.8.2'
|
13
|
+
# p.runtime_dependencies << 'hpricot >=0.8.2'
|
14
14
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/bin/cmdline-fu
CHANGED
@@ -1,15 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require "rubygems"
|
4
|
-
require
|
4
|
+
require "net/http"
|
5
5
|
require "ostruct"
|
6
6
|
require "abbrev"
|
7
7
|
|
8
|
-
begin
|
9
|
-
require "colored"
|
10
|
-
rescue LoadError
|
11
|
-
end
|
12
|
-
|
13
8
|
# Example
|
14
9
|
# browse/sort-by-votes - All commands sorted by votes
|
15
10
|
# tagged/163/grep - Commands tagged with 'grep', sorted by date (the default sort order)
|
@@ -18,100 +13,153 @@ end
|
|
18
13
|
# api_comand_set = [ :browse, :tagged, :matching ]
|
19
14
|
# api_format = [ :plaintext, :json, :rss ]
|
20
15
|
# api_url = "http://www.commandlinefu.com/commands/<command-set>/<format>/"
|
16
|
+
|
17
|
+
def try_require(lib, msg=nil)
|
18
|
+
begin
|
19
|
+
require lib
|
20
|
+
rescue LoadError => e
|
21
|
+
warn "can't load #{lib}: #{e}"
|
22
|
+
warn "\n#{msg}\n"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
try_require "colored"
|
21
27
|
|
22
28
|
class CommandLineFu
|
23
29
|
API_URL = 'http://www.commandlinefu.com/commands'
|
24
30
|
|
25
|
-
|
31
|
+
DEFAULT_OPT = {
|
32
|
+
:page => 1,
|
33
|
+
:command => "browse",
|
34
|
+
:format => "plaintext",
|
35
|
+
:sort_order => "sort-by-votes",
|
36
|
+
:tag_file => "~/.cmdline-fu.tags",
|
37
|
+
:tag_expire_days => 3,
|
38
|
+
:open_browser => false,
|
39
|
+
:colorize => true,
|
40
|
+
# 'black' => 30,
|
41
|
+
# 'red' => 31,
|
42
|
+
# 'green' => 32,
|
43
|
+
# 'yellow' => 33,
|
44
|
+
# 'blue' => 34,
|
45
|
+
# 'magenta' => 35,
|
46
|
+
# 'cyan' => 36,
|
47
|
+
# 'white' => 37
|
48
|
+
:color_match => 'yellow',
|
49
|
+
:color_desc => 'cyan',
|
50
|
+
:color_footer => 'green'
|
51
|
+
}
|
52
|
+
|
53
|
+
attr_reader :opt
|
54
|
+
def initialize(user_opt)
|
55
|
+
@opt = OpenStruct.new(DEFAULT_OPT.update(user_config).update(user_opt))
|
56
|
+
# p @opt
|
57
|
+
# exit
|
58
|
+
end
|
26
59
|
|
27
|
-
def
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
build_url
|
60
|
+
def user_config
|
61
|
+
user_config = File.expand_path "~/.cmdline-fu.conf"
|
62
|
+
if File.exist? user_config
|
63
|
+
return(eval File.read(user_config))
|
64
|
+
else
|
65
|
+
return {}
|
34
66
|
end
|
35
67
|
end
|
36
68
|
|
37
69
|
def result
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
page_idx = (
|
42
|
-
url = @api_url + "/#{page_idx}"
|
70
|
+
if %w(list_tag renew_tag version).include? opt.command
|
71
|
+
return send(opt.command)
|
72
|
+
end
|
73
|
+
page_idx = (opt.page - 1) * 25
|
43
74
|
|
44
|
-
|
45
|
-
|
75
|
+
url = "#{api_url}/#{page_idx}"
|
76
|
+
if opt.open_browser
|
77
|
+
system("#{browse_cmd} '#{url}'")
|
46
78
|
return
|
47
79
|
end
|
80
|
+
|
48
81
|
result = open_url(url)
|
49
|
-
return "#{
|
82
|
+
return "#{opt.search} NOT FOUND" if result.code != "200"
|
50
83
|
|
51
84
|
# each entry is separated by blank line , and we need to -1 for page headers.
|
52
85
|
b = result.body.split("\n\n")
|
53
86
|
header = b.shift
|
54
87
|
num_of_entries = b.size
|
55
88
|
body = b.join("\n\n")
|
89
|
+
|
56
90
|
unless num_of_entries.zero?
|
57
|
-
|
58
|
-
|
59
|
-
|
91
|
+
footer = "\n\n## Page(#{opt.page}):#{page_idx}-#{page_idx+num_of_entries} #{url}\n#{header}"
|
92
|
+
p opt.colorize
|
93
|
+
if opt.colorize
|
94
|
+
body = colorize(body)
|
95
|
+
footer = footer.send(opt.color_footer)
|
96
|
+
end
|
97
|
+
body + footer
|
60
98
|
end
|
61
|
-
body
|
62
99
|
end
|
63
100
|
|
64
101
|
def open_url(url)
|
65
|
-
|
66
|
-
|
102
|
+
Net::HTTP.version_1_2
|
103
|
+
uri = URI.parse(url)
|
104
|
+
proxy = URI.parse(ENV['HTTP_PROXY'] || opt.http_proxy_|| "")
|
105
|
+
http = Net::HTTP::Proxy(proxy.host, proxy.port).start(uri.host, uri.port)
|
67
106
|
request = Net::HTTP::Get.new(uri.request_uri)
|
68
107
|
http.request(request)
|
69
108
|
end
|
70
109
|
|
71
110
|
private
|
72
|
-
def
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
"#{@command}"
|
111
|
+
def browse_cmd
|
112
|
+
return opt.browse_cmd if opt.browse_cmd
|
113
|
+
case RUBY_PLATFORM.downcase
|
114
|
+
when /darwin/ then "open"
|
115
|
+
when /linux/ then "firefox"
|
116
|
+
when /mswin/ then 'echo "NOT SUPPORTED for browse command"'
|
117
|
+
end
|
80
118
|
end
|
81
119
|
|
82
|
-
def
|
83
|
-
|
120
|
+
def api_url
|
121
|
+
command_part = command_set_for(opt.command)
|
122
|
+
url = "#{API_URL}/#{command_part}/#{opt.sort_order}"
|
123
|
+
url << "/#{opt.format}" if opt.format
|
124
|
+
url
|
84
125
|
end
|
85
|
-
alias_method :setup_by, :setup_using
|
86
126
|
|
87
|
-
def
|
88
|
-
|
89
|
-
|
90
|
-
|
127
|
+
def command_set_for(command)
|
128
|
+
{
|
129
|
+
"version" => "version",
|
130
|
+
"browse" => "browse",
|
131
|
+
"using" => "using/#{opt.search}",
|
132
|
+
"by" => "by/#{opt.search}",
|
133
|
+
"matching" => lambda {
|
134
|
+
b64text = [opt.search].pack("m").chomp
|
135
|
+
search = opt.search.tr(' ','-')
|
136
|
+
"matching/#{search}/#{b64text}"
|
137
|
+
}.call,
|
138
|
+
"tagged" => lambda {
|
139
|
+
unless tag_id = tags[opt.search]
|
140
|
+
raise "Tag not found"
|
141
|
+
end
|
142
|
+
"tagged/#{tag_id}/#{opt.search}"
|
143
|
+
}.call
|
144
|
+
}[command]
|
91
145
|
end
|
92
146
|
|
93
|
-
def
|
94
|
-
|
95
|
-
tag_id = tags[tag]
|
96
|
-
raise "Tag not found" unless tag_id
|
97
|
-
"#{@command}/#{tag_id}/#{tag}"
|
147
|
+
def version
|
148
|
+
return File.read(File.dirname(File.expand_path(__FILE__)) + "/../VERSION" )
|
98
149
|
end
|
99
150
|
|
100
151
|
def colorize(string)
|
101
152
|
string.split("\n").map do |e|
|
102
153
|
e.chomp!
|
103
|
-
(e =~ /^#/) ? e.
|
154
|
+
(e =~ /^#/) ? e.send(opt.color_desc) :
|
155
|
+
e.gsub(/#{opt.search}/){|m|
|
156
|
+
Colored.colorize m, :foreground => opt.color_match
|
157
|
+
}
|
104
158
|
end.join("\n")
|
105
159
|
end
|
106
160
|
|
107
|
-
def tag_file_is_too_old?
|
108
|
-
tag_file = File.expand_path @opt.tag_file
|
109
|
-
expire_limit = (60 * 60 * 24) * @opt.tag_expire_days
|
110
|
-
expire_limit < (Time.now - File.stat(tag_file).mtime)
|
111
|
-
end
|
112
|
-
|
113
161
|
def list_tag
|
114
|
-
candidate = tags.keys.grep(/#{
|
162
|
+
candidate = tags.keys.grep(/#{opt.search}/)
|
115
163
|
result = if candidate.size >= 1
|
116
164
|
colorize(candidate.join("\n"))
|
117
165
|
elsif candidate.size == 0
|
@@ -125,10 +173,11 @@ class CommandLineFu
|
|
125
173
|
end
|
126
174
|
|
127
175
|
def build_tag_file
|
128
|
-
tag_file = File.expand_path
|
129
|
-
|
130
|
-
|
176
|
+
tag_file = File.expand_path opt.tag_file
|
177
|
+
File.open(tag_file, "wb"){ |f| Marshal.dump(scrape_tag, f) }
|
178
|
+
return
|
131
179
|
end
|
180
|
+
alias_method :renew_tag, :build_tag_file
|
132
181
|
|
133
182
|
# def extract_tag_nokogiri
|
134
183
|
# require 'nokogiri'
|
@@ -144,8 +193,17 @@ class CommandLineFu
|
|
144
193
|
# h
|
145
194
|
# end
|
146
195
|
|
147
|
-
def
|
148
|
-
|
196
|
+
def scrape_tag
|
197
|
+
ret = try_require "hpricot", <<-EOS
|
198
|
+
|
199
|
+
if you want to TAG based query, install 'hpricot'
|
200
|
+
|
201
|
+
gem install hpricot
|
202
|
+
|
203
|
+
EOS
|
204
|
+
unless ret
|
205
|
+
exit
|
206
|
+
end
|
149
207
|
h = {}
|
150
208
|
url = 'http://www.commandlinefu.com/commands/browse'
|
151
209
|
Hpricot(open_url(url).body).
|
@@ -160,15 +218,13 @@ class CommandLineFu
|
|
160
218
|
end
|
161
219
|
|
162
220
|
def load_tags
|
163
|
-
tag_file = File.expand_path
|
164
|
-
|
165
|
-
build_tag_file
|
221
|
+
tag_file = File.expand_path opt.tag_file
|
222
|
+
unless File.exist?(tag_file)
|
223
|
+
build_tag_file
|
166
224
|
end
|
167
225
|
File.open(tag_file, "rb"){ |f| Marshal.load f }
|
168
226
|
end
|
169
|
-
|
170
227
|
end
|
171
|
-
# $NOCACHE = true
|
172
228
|
|
173
229
|
# TEST
|
174
230
|
# [
|
@@ -181,26 +237,10 @@ end
|
|
181
237
|
# puts CommandLineFu.new(opt).api_url
|
182
238
|
# end
|
183
239
|
|
184
|
-
|
185
|
-
:page => 1,
|
186
|
-
:command => "browse",
|
187
|
-
:format => "plaintext",
|
188
|
-
:sort_order => "sort-by-votes",
|
189
|
-
:tag_file => "~/.cmdline-fu.tags",
|
190
|
-
:tag_expire_days => 3,
|
191
|
-
:open_browser => false,
|
192
|
-
}
|
193
|
-
|
194
|
-
command_table = Abbrev.abbrev(%w(list_tag browse using by tagged matching))
|
195
|
-
|
196
|
-
# user_opt = {}
|
197
|
-
# ARGV = %w(browse)
|
198
|
-
# ARGV = %w(using find)
|
199
|
-
# ARGV = %w(by atoponce)
|
200
|
-
# ARGV = %w(matching find)
|
201
|
-
|
240
|
+
command_table = Abbrev.abbrev(%w(list_tag browse using by tagged matching renew_tag version))
|
202
241
|
|
203
242
|
user_opt = {}
|
243
|
+
user_opt[:colorize] = false if ARGV.delete('-n')
|
204
244
|
user_opt[:command] = command_table[ARGV.shift]
|
205
245
|
|
206
246
|
if ARGV.last == 'o'
|
@@ -213,21 +253,22 @@ page = ARGV.last.to_i
|
|
213
253
|
user_opt[:page] = page.zero? ? 1 : page
|
214
254
|
user_opt[:search] = ARGV.shift
|
215
255
|
|
216
|
-
|
217
256
|
PROGRAM_NAME = File.basename $0
|
218
257
|
if user_opt[:command].nil?
|
219
258
|
puts <<-EOS
|
220
259
|
|
221
260
|
#{"Usage".bold}
|
222
261
|
|
223
|
-
#{PROGRAM_NAME} COMMAND [PAGE] [o]
|
262
|
+
#{PROGRAM_NAME} COMMAND [PAGE] [o] [-n]
|
224
263
|
|
225
264
|
COMMAND: list_tag [MATCHER], browse, using WORD, by USER, tagged TAG, matching WORD
|
226
265
|
PAGE: 1-999 (defaut: 1)
|
227
|
-
o:
|
266
|
+
o: open in browser
|
267
|
+
-n: not colorize
|
228
268
|
|
229
269
|
#{"Example".bold}
|
230
270
|
|
271
|
+
#{PROGRAM_NAME} renew_tag
|
231
272
|
#{PROGRAM_NAME} list_tag
|
232
273
|
#{PROGRAM_NAME} list_tag vm
|
233
274
|
#{PROGRAM_NAME} browse
|
@@ -240,6 +281,7 @@ if user_opt[:command].nil?
|
|
240
281
|
#{"Abbreviation".bold}
|
241
282
|
Unique abbreviation for command is supported.
|
242
283
|
|
284
|
+
#{PROGRAM_NAME} r
|
243
285
|
#{PROGRAM_NAME} l
|
244
286
|
#{PROGRAM_NAME} l vm
|
245
287
|
#{PROGRAM_NAME} br
|
data/cmdline-fu.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{cmdline-fu}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.3"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["t9md"]
|
9
|
-
s.date = %q{
|
9
|
+
s.date = %q{2011-01-22}
|
10
10
|
s.default_executable = %q{cmdline-fu}
|
11
11
|
s.description = %q{CLI frontend for http://www.commandlinefu.com/ }
|
12
12
|
s.email = %q{taqumd@gmail.com}
|
13
13
|
s.executables = ["cmdline-fu"]
|
14
14
|
s.extra_rdoc_files = ["LICENSE.txt", "README.md", "bin/cmdline-fu"]
|
15
|
-
s.files = ["LICENSE.txt", "Manifest", "README.md", "Rakefile", "VERSION", "bin/cmdline-fu", "cmdline-fu.gemspec"]
|
15
|
+
s.files = ["LICENSE.txt", "Manifest", "README.md", "Rakefile", "VERSION", "bin/cmdline-fu", "example/dot.cmdline-fu.conf", "cmdline-fu.gemspec"]
|
16
16
|
s.homepage = %q{http://github.com/t9md/cmdline-fu}
|
17
17
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Cmdline-fu", "--main", "README.md"]
|
18
18
|
s.require_paths = ["lib"]
|
@@ -25,13 +25,10 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
27
27
|
s.add_runtime_dependency(%q<colored>, [">= 0"])
|
28
|
-
s.add_runtime_dependency(%q<hpricot>, [">= 0.8.2"])
|
29
28
|
else
|
30
29
|
s.add_dependency(%q<colored>, [">= 0"])
|
31
|
-
s.add_dependency(%q<hpricot>, [">= 0.8.2"])
|
32
30
|
end
|
33
31
|
else
|
34
32
|
s.add_dependency(%q<colored>, [">= 0"])
|
35
|
-
s.add_dependency(%q<hpricot>, [">= 0.8.2"])
|
36
33
|
end
|
37
34
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
#--------------------------------------------------------
|
3
|
+
# Proxy setting. you can overwrite this
|
4
|
+
# with HTTP_PROXY environment variable
|
5
|
+
#--------------------------------------------------------
|
6
|
+
# :http_proxy_ => 'http://192.168.1.1:3128',
|
7
|
+
|
8
|
+
#--------------------------------------------------------
|
9
|
+
# Disable colorized output
|
10
|
+
#--------------------------------------------------------
|
11
|
+
#:colorize => false,
|
12
|
+
|
13
|
+
#--------------------------------------------------------
|
14
|
+
# Supported colors are...
|
15
|
+
# black red green yellow blue magenta cyan white
|
16
|
+
#--------------------------------------------------------
|
17
|
+
:color_match => 'yellow',
|
18
|
+
:color_desc => 'cyan',
|
19
|
+
:color_footer => 'green',
|
20
|
+
|
21
|
+
#--------------------------------------------------------
|
22
|
+
# Web Browser command used such as 'cmdline-fu browse o'.
|
23
|
+
#--------------------------------------------------------
|
24
|
+
# for linux
|
25
|
+
:browse_cmd => 'firefox',
|
26
|
+
# :browse_cmd => 'google-chrome',
|
27
|
+
|
28
|
+
# Mac OSX's default
|
29
|
+
# :browse_cmd => 'open',
|
30
|
+
}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cmdline-fu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- t9md
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-01-22 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -32,22 +32,6 @@ dependencies:
|
|
32
32
|
version: "0"
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: hpricot
|
37
|
-
prerelease: false
|
38
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
hash: 59
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
- 8
|
47
|
-
- 2
|
48
|
-
version: 0.8.2
|
49
|
-
type: :runtime
|
50
|
-
version_requirements: *id002
|
51
35
|
description: "CLI frontend for http://www.commandlinefu.com/ "
|
52
36
|
email: taqumd@gmail.com
|
53
37
|
executables:
|
@@ -65,6 +49,7 @@ files:
|
|
65
49
|
- Rakefile
|
66
50
|
- VERSION
|
67
51
|
- bin/cmdline-fu
|
52
|
+
- example/dot.cmdline-fu.conf
|
68
53
|
- cmdline-fu.gemspec
|
69
54
|
has_rdoc: true
|
70
55
|
homepage: http://github.com/t9md/cmdline-fu
|