Sha256: a4b4cce9f7c1ba5d63a84684d864b6cf309e72f9239a14bb2546147f0f6d4178

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

require 'fd'
require 'optparse'
require 'ostruct'

arguments = OpenStruct.new
arguments.width = 10

options = OptionParser.new do |opts|
  opts.banner = "Usage: #{File.basename __FILE__} [options] [file_names]"

  opts.on('-w',
          '--width=WIDTH [Integer]',
          Integer, 'Display upto _width_ bytes per row, optional, default is 10') do |width|
    arguments.width = width
  end

  opts.on('-h', '--help', 'Display using this help') do
    puts opts
    puts '', 'When no file names a given fd reads from STDIN.'
    exit
  end

  opts.on('-v', '--version', 'Display version info and quit') do
    puts "fd version: #{Fd.version}"
    exit
  end
end

begin
  ARGV.push('-h') if ARGV.empty? && ARGF.eof?
  options.parse!
rescue OptionParser::InvalidArgument
  puts "fd doesn't work, this way:"
  options.parse %w[--help]
  exit 1
end

file_dumper = Fd.new(arguments.width)

if ARGV.size.positive?
  ARGV.each do |fn|
    file_dumper.dump_file(fn)
  end
else
  file_dumper.dump_stdin($stdin.read)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fd-1.0.1 bin/fd