bin/crf

Summary

Maintainability
Test Coverage
#!/usr/bin/env ruby

require 'crf'
require 'crf/version'
require 'optparse'

options = { interactive: true, progress: true, fast: false }

parser = OptionParser.new do |opts|
  opts.banner = 'Usage: crf PATH [-f] [-n] [-o]'

  opts.on('-f', '--fast', 'Only checks for files of the same size') do
    options[:fast] = true
  end

  opts.on('-n', '--no-interactive', 'Saves the first file and removes all the repetitions without asking') do
    options[:interactive] = false
  end

  opts.on('-o', '--no-progress', 'Hides the progress bar while executing') do
    options[:progress] = false
  end

  opts.on('-v', '--version', 'Displays version') do
    puts "CRF Version: #{Crf::VERSION}"
    exit
  end

  opts.on('-h', '--help', 'Displays help') do
    puts opts
    exit
  end
end

parser.parse!

paths = []
ARGV.each { |arg| paths << arg if File.directory?(arg) }

if paths.empty?
  STDOUT.puts 'No directory specified.'
else
  Crf::Checker.new(paths, options).check_repeated_files
end