rbfind 2.6 → 2.7
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 +4 -4
- data/bin/rbfind +9 -5
- data/lib/rbfind.rb +37 -26
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b57d2e44d4df6453083635d22ab01c92ea5b54fed8c121a313ac351048f16b51
|
4
|
+
data.tar.gz: 20518a97f6e446de75b6397a0e725a9f1c93d5c61f93743072a2b60e322c75a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ad6d7f05ad3de24d717dc7d274ea5dc75fd5ee81640c1de03bef875727a5f33ed80846ad7445a990ac925734a1dbed66312bac0686bcbb7d16bd1d33ae2d710
|
7
|
+
data.tar.gz: 9b97002d3fd98ffd891d5d10b6fc60087a18f2a2b828a0a0099554fa2f50fe0e562a3cd4a062602e9210508d389b733974ddeb9442e0636083cc4e98a8740777
|
data/bin/rbfind
CHANGED
@@ -43,6 +43,7 @@ module RbFind
|
|
43
43
|
[ %w(--puts-path -p), nil, "do 'puts path/cpath' on true block"],
|
44
44
|
[ %w(--ls-l -P), nil, "do 'ls -l' style output on true block"],
|
45
45
|
[ %w(--long -Q), nil, "alternate long format on true block"],
|
46
|
+
[ %w(--ino -J), nil, "show inodes and number of hard links"],
|
46
47
|
[ %w(--wider -+), nil, "widen fields in long output format"],
|
47
48
|
[ %w(--slash -/), nil, "append a slash to directory names"],
|
48
49
|
[ %w(--lines -l), :blk, "surround block by 'lines { |$_,$.| ... }'"],
|
@@ -95,7 +96,8 @@ module RbFind
|
|
95
96
|
when '--puts-path' then @puts = true
|
96
97
|
when '--ls-l' then @puts = :ls ; @wds = 6 ; @wd = 6
|
97
98
|
when '--long' then @puts = :alt ; @wds = 7 ; @wd = 4
|
98
|
-
when '--
|
99
|
+
when '--ino' then @puts = :ino ; @wds = 8 ; @wd = 2
|
100
|
+
when '--wider' then @wd and @wd += 2.succ ; @wds and @wds += @puts != :ls ? 4 : 3
|
99
101
|
when '--slash' then @slash = true
|
100
102
|
when '--lines' then @lines = :plain ; @block = arg
|
101
103
|
when '--reallines' then @lines = :plain ; @real = true ; @block = arg
|
@@ -161,12 +163,14 @@ module RbFind
|
|
161
163
|
if @puts then
|
162
164
|
@block = "( #@block ) and "
|
163
165
|
@block << case @puts
|
164
|
-
when :alt then
|
165
|
-
"spcsep stype+modes, user!.w#@wd, group!.w#@wd, size.w_#@wds, " +
|
166
|
-
"mtime.long, #{opath} + #{co ? 'carrow' : 'arrow'}.to_s"
|
167
166
|
when :ls then
|
168
167
|
"spcsep stype+modes, user.w#@wd, group.w#@wd, size.w#@wds, " +
|
169
168
|
"mtime.lsish, #{opath} + #{co ? 'carrow' : 'arrow'}.to_s"
|
169
|
+
when :alt then
|
170
|
+
"spcsep stype+modes, user!.w#@wd, group!.w#@wd, size.w_#@wds, " +
|
171
|
+
"mtime.long, #{opath} + #{co ? 'carrow' : 'arrow'}.to_s"
|
172
|
+
when :ino then
|
173
|
+
"spcsep ino.w#@wds, nlink.w#@wd, #{opath}"
|
170
174
|
else
|
171
175
|
"puts #{opath}"
|
172
176
|
end
|
@@ -359,7 +363,7 @@ module RbFind
|
|
359
363
|
|
360
364
|
def show
|
361
365
|
puts "arguments:"
|
362
|
-
@args.each { |a| puts_val a }.any?
|
366
|
+
@args.each { |a| puts_val a }.any? or puts_val "(none)"
|
363
367
|
puts "parameters:"
|
364
368
|
@params.each { |k,v| puts_val k, "=", v }.any? or puts_val "(none)"
|
365
369
|
puts "block:"
|
data/lib/rbfind.rb
CHANGED
@@ -8,7 +8,7 @@ require "rbfind/csv"
|
|
8
8
|
|
9
9
|
module RbFind
|
10
10
|
|
11
|
-
VERSION = "2.
|
11
|
+
VERSION = "2.7".freeze
|
12
12
|
|
13
13
|
=begin rdoc
|
14
14
|
|
@@ -275,7 +275,7 @@ Sort without case sensitivity and preceding dot:
|
|
275
275
|
|
276
276
|
def initialize max_depth: nil, depth_first: nil, follow: nil,
|
277
277
|
sort: true, dirs: false, reverse: false, error: nil, &block
|
278
|
-
@params = Params.new max_depth
|
278
|
+
@params = Params.new max_depth&.nonzero?, depth_first, follow,
|
279
279
|
(sort_parser sort), dirs, reverse, error, block
|
280
280
|
@start = Time.instance_eval { @start = Time.now }
|
281
281
|
Time.instance_eval { @start = Time.now }
|
@@ -299,13 +299,12 @@ Sort without case sensitivity and preceding dot:
|
|
299
299
|
if args.empty? then
|
300
300
|
visit_dir Dir::CUR_DIR
|
301
301
|
else
|
302
|
-
|
303
|
-
|
304
|
-
File.lstat base rescue raise "`#{base}` doesn't exist."
|
302
|
+
step_depth do
|
303
|
+
args.each { |base|
|
305
304
|
e = Entry.new base, self
|
306
|
-
enter e
|
307
|
-
|
308
|
-
|
305
|
+
enter e if handle_error do e.stat end
|
306
|
+
}
|
307
|
+
end
|
309
308
|
end
|
310
309
|
end
|
311
310
|
|
@@ -315,10 +314,32 @@ Sort without case sensitivity and preceding dot:
|
|
315
314
|
|
316
315
|
private
|
317
316
|
|
317
|
+
def step_depth
|
318
|
+
@depth += 1
|
319
|
+
yield
|
320
|
+
ensure
|
321
|
+
@depth -= 1
|
322
|
+
end
|
323
|
+
|
318
324
|
def enter elem
|
319
325
|
c_, @current = @current, elem
|
320
326
|
@count += 1
|
321
|
-
|
327
|
+
if @params.depth_first then
|
328
|
+
enter_dir
|
329
|
+
begin
|
330
|
+
call_block
|
331
|
+
rescue Prune
|
332
|
+
handle_error do
|
333
|
+
raise "#{self.class}: prune with :depth_first is pointless."
|
334
|
+
end
|
335
|
+
end
|
336
|
+
else
|
337
|
+
begin
|
338
|
+
call_block
|
339
|
+
enter_dir if @current.path
|
340
|
+
rescue Prune
|
341
|
+
end
|
342
|
+
end
|
322
343
|
ensure
|
323
344
|
@current = c_
|
324
345
|
end
|
@@ -327,22 +348,14 @@ Sort without case sensitivity and preceding dot:
|
|
327
348
|
return if @params.max_depth and @params.max_depth == @depth
|
328
349
|
list = (Dir.new dir).children.map { |f| Entry.new f, self }
|
329
350
|
@params.sort.call list
|
330
|
-
|
331
|
-
@params.dirs
|
332
|
-
|
333
|
-
|
334
|
-
list.
|
335
|
-
ensure
|
336
|
-
@depth -= 1
|
351
|
+
list.reverse! if @params.reverse
|
352
|
+
if @params.dirs then
|
353
|
+
list = list.partition { |e| e.rstat.directory? rescue nil }
|
354
|
+
list.reverse! if @params.depth_first
|
355
|
+
list.flatten!
|
337
356
|
end
|
338
|
-
|
339
|
-
|
340
|
-
def visit_depth
|
341
|
-
if @params.depth_first then
|
342
|
-
enter_dir
|
343
|
-
call_block
|
344
|
-
else
|
345
|
-
call_block and enter_dir
|
357
|
+
step_depth do
|
358
|
+
list.each { |e| enter e }
|
346
359
|
end
|
347
360
|
end
|
348
361
|
|
@@ -363,9 +376,7 @@ Sort without case sensitivity and preceding dot:
|
|
363
376
|
@current.instance_eval &@params.block
|
364
377
|
rescue Done
|
365
378
|
end
|
366
|
-
@current.path
|
367
379
|
end
|
368
|
-
rescue Prune
|
369
380
|
end
|
370
381
|
|
371
382
|
def handle_error
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbfind
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '2.
|
4
|
+
version: '2.7'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bertram Scharpf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
A replacement for the standard UNIX command find.
|