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") <firmware destdir> [<path of kinect_upload_fw binary>]" 1>&2; exit 1; }
+[ $# -lt 1 ] && { echo "usage: $(basename "$0") <firmware destdir>" 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; }
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
--- /dev/null
+#!/bin/sh
+#
+# kinect_patch_udev_rules - Patch contrib/ udev rules file to load UACFirmware
+#
+# Copyright (C) 2016 Antonio Ospite <ao2@ao2.it>
+#
+# 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") <firmware path> <kinect_upload_fw path> <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