mirror of
https://github.com/athityakumar/colorls.git
synced 2024-09-19 05:31:23 +02:00
Merge pull request #502 from goar5670/short-report
This commit is contained in:
commit
1f2c7ee996
4 changed files with 43 additions and 18 deletions
|
@ -77,16 +77,24 @@ module ColorLS
|
|||
ls
|
||||
end
|
||||
|
||||
def display_report
|
||||
puts <<~REPORT
|
||||
def display_report(report_mode)
|
||||
if report_mode == :short
|
||||
puts <<~REPORT
|
||||
|
||||
Found #{@count.values.sum} items in total.
|
||||
\s\s\s\sFolders: #{@count[:folders]}, Files: #{@count[:recognized_files] + @count[:unrecognized_files]}.
|
||||
REPORT
|
||||
.colorize(@colors[:report])
|
||||
else
|
||||
puts <<~REPORT
|
||||
|
||||
\tFolders\t\t\t: #{@count[:folders]}
|
||||
\tRecognized files\t: #{@count[:recognized_files]}
|
||||
\tUnrecognized files\t: #{@count[:unrecognized_files]}
|
||||
REPORT
|
||||
.colorize(@colors[:report])
|
||||
Found #{@count.values.sum} items in total.
|
||||
|
||||
\tFolders\t\t\t: #{@count[:folders]}
|
||||
\tRecognized files\t: #{@count[:recognized_files]}
|
||||
\tUnrecognized files\t: #{@count[:unrecognized_files]}
|
||||
REPORT
|
||||
.colorize(@colors[:report])
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -11,7 +11,7 @@ module ColorLS
|
|||
@light_colors = false
|
||||
|
||||
@opts = default_opts
|
||||
@show_report = false
|
||||
@report_mode = false
|
||||
@exit_status_code = 0
|
||||
|
||||
parse_options
|
||||
|
@ -88,7 +88,7 @@ module ColorLS
|
|||
$stderr.puts "#{dir}: #{e}".colorize(:red)
|
||||
end
|
||||
|
||||
core.display_report if @show_report
|
||||
core.display_report(@report_mode) if @report_mode
|
||||
|
||||
@exit_status_code
|
||||
end
|
||||
|
@ -142,8 +142,11 @@ module ColorLS
|
|||
options.on('-d', '--dirs', 'show only directories') { @opts[:show] = :dirs }
|
||||
options.on('-f', '--files', 'show only files') { @opts[:show] = :files }
|
||||
options.on('--gs', '--git-status', 'show git status for each file') { @opts[:git_status] = true }
|
||||
options.on('--report', 'show brief report') { @show_report = true }
|
||||
options.on('-p', 'append / indicator to directories') { @opts[:indicator_style] = 'slash' }
|
||||
options.on('--report=[WORD]', %w[short long], 'show report: short, long (default if omitted)') do |word|
|
||||
word ||= :long
|
||||
@report_mode = word.to_sym
|
||||
end
|
||||
options.on(
|
||||
'--indicator-style=[STYLE]',
|
||||
%w[none slash], 'append indicator with style STYLE to entry names: none, slash (-p) (default)'
|
||||
|
|
|
@ -20,9 +20,12 @@ RSpec.describe ColorLS::Flags do
|
|||
end.not_to output(/((r|-).*(w|-).*(x|-).*){3}/).to_stdout
|
||||
}
|
||||
|
||||
it('does not display hidden files') { expect { subject }.not_to output(/\.hidden-file/).to_stdout }
|
||||
it('does not show a report') { expect { subject }.not_to output(/Found \d+ contents/).to_stdout }
|
||||
it('displays dirs & files alphabetically') { expect { subject }.to output(/a-file.+symlinks.+z-file/m).to_stdout }
|
||||
it('does not display hidden files') { expect { subject }.not_to output(/\.hidden-file/).to_stdout }
|
||||
it('displays dirs & files alphabetically') { expect { subject }.to output(/a-file.+symlinks.+z-file/m).to_stdout }
|
||||
|
||||
it 'does not show a report' do
|
||||
expect { subject }.not_to output(/(Found \d+ items in total\.)|(Folders: \d+, Files: \d+\.)/).to_stdout
|
||||
end
|
||||
|
||||
it 'displays multiple files per line' do
|
||||
allow($stdout).to receive(:tty?).and_return(true)
|
||||
|
@ -352,11 +355,19 @@ RSpec.describe ColorLS::Flags do
|
|||
end
|
||||
end
|
||||
|
||||
context 'with unrecognized files' do
|
||||
let(:args) { ['--report', FIXTURES] }
|
||||
context 'with --report flag' do
|
||||
let(:args) { ['--report', '--report=long', FIXTURES] }
|
||||
|
||||
it 'shows a report with unrecognized files' do
|
||||
expect { subject }.to output(/Unrecognized files\s+: 3/).to_stdout
|
||||
it 'shows a report with recognized and unrecognized files' do
|
||||
expect { subject }.to output(/Recognized files\s+: 3\n.+Unrecognized files\s+: 3/).to_stdout
|
||||
end
|
||||
end
|
||||
|
||||
context 'with --report=short flag' do
|
||||
let(:args) { ['--report=short', FIXTURES] }
|
||||
|
||||
it 'shows a brief report' do
|
||||
expect { subject }.to output(/Folders: \d+, Files: \d+\./).to_stdout
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -34,6 +34,9 @@ OK colorls --color=never
|
|||
OK colorls --color=always
|
||||
OK colorls --tree spec
|
||||
OK colorls --tree=1
|
||||
OK colorls --report
|
||||
OK colorls --report=long
|
||||
OK colorls --report=short
|
||||
|
||||
LC_ALL=C OK colorls spec/fixtures/
|
||||
LC_ALL=C OK colorls --git spec/fixtures/
|
||||
|
|
Loading…
Reference in a new issue