exe/honey_format
#!/usr/bin/env ruby
# frozen_string_literal: true
# for dev purposes
require 'bundler/setup' if ENV['HONEY_FORMAT_GEM_DEV']
require 'honey_format'
require 'honey_format/cli/cli'
cli = HoneyFormat::CLI.new
options = cli.options
input_path = options[:input_path]
unless input_path
puts cli.usage
puts
puts '[ERROR] input path required'
exit 1
end
csv_input = File.read(input_path)
csv = HoneyFormat::CSV.new(
csv_input,
delimiter: options[:delimiter],
type_map: options[:type_map],
skip_lines: options[:skip_lines]
)
csv_part = if options[:header_only]
csv.header
elsif options[:rows_only]
csv.rows
else
csv
end
csv_string = csv_part.to_csv(columns: options[:columns])
if path = options[:output_path]
File.write(path, csv_string)
else
puts csv_string
end