module FakeFS::FileUtils

def ln_s(target, path, options = {})

def ln_s(target, path, options = {})
  options = { force: false }.merge(options)
  raise(Errno::EEXIST, path.to_s) if FileSystem.find(path) && !options[:force]
  FileSystem.delete(path)
  if !options[:force] && !Dir.exist?(File.dirname(path))
    raise Errno::ENOENT, path.to_s
  end
  FileSystem.add(path, FakeSymlink.new(target))
end