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

require "dorian/arguments"

parsed =
  Dorian::Arguments.parse(
    prepend: {
      alias: :p
    },
    append: {
      alias: :a
    },
    version: {
      alias: :v
    },
    help: {
      alias: :h
    }
  )

abort parsed.help if parsed.options.help

if parsed.options.version
  abort File.read(File.expand_path("../VERSION", __dir__))
end

content = $stdin.each_line.to_a.join

(parsed.files + parsed.arguments).each do |file|
  if parsed.options.append
    File.write(file, [File.read(file).strip, content].join("\n"))
  elsif parsed.options.prepend
    File.write(file, [content, File.read(file).strip].join("\n"))
  else
    File.write(file, content)
  end
end
