From 2b72519726f9afa3d9478f73e10dfbf52e30aa5d Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Sat, 9 Jan 2016 12:59:53 +0100 Subject: [PATCH] Factor out a kinect_patch_udev_rules script This allows to prepare the udev rules file at "make install" time, while still being able to fetch the firmware at some later stage. This makes it easier for packages to have a stable udev rules file. --- kinect_fetch_fw | 10 +--------- kinect_patch_udev_rules | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 9 deletions(-) create mode 100755 kinect_patch_udev_rules diff --git a/kinect_fetch_fw b/kinect_fetch_fw index 7c84cf1..9437a4d 100755 --- a/kinect_fetch_fw +++ b/kinect_fetch_fw @@ -21,9 +21,8 @@ set -e SDK_URL=${SDK_URL:-"http://download.microsoft.com/download/F/9/9/F99791F2-D5BE-478A-B77A-830AD14950C3/KinectSDK-v1.0-beta2-x86.msi"} SDK_MD5="40764fe9e00911bda5095e5be777e311" -[ $# -lt 1 ] && { echo "usage: $(basename "$0") []" 1>&2; exit 1; } +[ $# -lt 1 ] && { echo "usage: $(basename "$0") " 1>&2; exit 1; } FW_DESTDIR=$(readlink -m $1) -LOADER_PATH=${2:-"/usr/local/sbin/kinect_upload_fw"} command -v wget >/dev/null 2>&1 || { echo "$(basename "$0"): command 'wget' is needed." 1>&2 ; exit 1; } command -v 7z >/dev/null 2>&1 || { echo "$(basename "$0"): command '7z' is needed." 1>&2; exit 1; } @@ -63,10 +62,3 @@ FIRMWARE_PATH="${FW_DESTDIR}/UACFirmware" install -d "$FW_DESTDIR" install -m 644 "$FW_FILE" "$FIRMWARE_PATH" - -if [ -f "/lib/udev/rules.d/55-kinect_audio.rules" ]; -then - sed -e "s|@LOADER_PATH@|${LOADER_PATH}|g" \ - -e "s|@FIRMWARE_PATH@|${FIRMWARE_PATH}|g" \ - -i "/lib/udev/rules.d/55-kinect_audio.rules" -fi diff --git a/kinect_patch_udev_rules b/kinect_patch_udev_rules new file mode 100755 index 0000000..85027ce --- /dev/null +++ b/kinect_patch_udev_rules @@ -0,0 +1,36 @@ +#!/bin/sh +# +# kinect_patch_udev_rules - Patch contrib/ udev rules file to load UACFirmware +# +# Copyright (C) 2016 Antonio Ospite +# +# This program is free software. It comes without any warranty, to +# the extent permitted by applicable law. You can redistribute it +# and/or modify it under the terms of the Do What The Fuck You Want +# To Public License, Version 2, as published by Sam Hocevar. See +# http://sam.zoy.org/wtfpl/COPYING for more details. + +set -e + +[ $# -lt 3 ] && { echo "usage: $(basename "$0") <55-kinect_audio.rules path>" 1>&2; exit 1; } +FIRMWARE_PATH="$1" +LOADER_PATH="$2" +UDEV_RULES_PATH="$3" + +[ "x$FIRMWARE_PATH" != "x" ] || { echo "Empty FIRMWARE_PATH" 1>&2; exit 1;} +[ "x$LOADER_PATH" != "x" ] || { echo "Empty LOADER_PATH" 1>&2; exit 1;} + +# The udev rules file must exist the other files may not exist just yet: they +# may be under a prefixed path different from the final one, like in the case +# when this is called at package creation time. +[ -f "$UDEV_RULES_PATH" ] || { echo "Cannot find the udev rules file: $UDEV_RULES_PATH" 1>&2; exit 1; } + +if grep -q "@LOADER_PATH@ @FIRMWARE_PATH@" "$UDEV_RULES_PATH"; +then + sed -e "s|@LOADER_PATH@|${LOADER_PATH}|g" \ + -e "s|@FIRMWARE_PATH@|${FIRMWARE_PATH}|g" \ + -i "$UDEV_RULES_PATH" +else + echo "$UDEV_RULES_PATH does not contain the expected placeholders." 2>&1 + exit 1 +fi -- 2.1.4