# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

cros_pre_src_prepare_brltty_config() {
	epatch "${FILESDIR}"/${P}-tty0-openflags.patch
	epatch "${FILESDIR}/"${P}-supress-messages.patch
	epatch "${FILESDIR}"/${P}-udev-run-script.patch
	epatch "${FILESDIR}"/${P}-remove-umask-calls.patch
	epatch "${FILESDIR}"/${P}-updusbdevs.patch
	epatch "${FILESDIR}"/${P}-hims.patch
	epatch "${FILESDIR}"/${P}-handytech.patch
}

cros_post_src_prepare_brltty_config() {
	# Upstream has a patch that touches the autogenerated
	# part of the udev rules file.  Run this script after
	# that patch is applied so it applies cleanly.
	# updusbdevs rewrites the autogenerated part.  The -nogeneric
	# flag accomplishes what the upstream patch does.
	# Also, some of the patches in cros_pre_src_prepare_brltty_config
	# modify the usb device definitions in the C source, and for those
	# to be picked up by updusbdevs, those patches need to be applied
	# before the below line.
	./updusbdevs -nogeneric udev:Hotplug/udev.rules || die
}

cros_post_src_install_brltty_config() {
	insinto /etc
	doins "${FILESDIR}"/brltty.conf
	exeinto $(udev_get_udevdir)
	doexe "${FILESDIR}"/brltty
}
