From 18cd771cd5706cc3595e667ae8e7129db6bdae95 Mon Sep 17 00:00:00 2001
From: Alopez <alopez@iri.upc.edu>
Date: Thu, 11 Jul 2019 12:51:09 +0200
Subject: [PATCH] Added maintainer scripts to add ftdio udev rule and user to
 the group dialout

---
 CMakeLists.txt          |  2 +-
 scripts/debian/postinst | 42 +++++++++++++++++++++++++++++++++++++++++
 scripts/debian/prerm    | 31 ++++++++++++++++++++++++++++++
 3 files changed, 74 insertions(+), 1 deletion(-)
 create mode 100644 scripts/debian/postinst
 create mode 100644 scripts/debian/prerm

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 922678c..29e1065 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -90,7 +90,7 @@ IF (UNIX)
   SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "labrobotica - labrobotica@iri.upc.edu")
 
 # Uncomment to add the necessary mantainer scripts
-#   SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/package_scripts/preinst;${CMAKE_SOURCE_DIR}/package_scripts/postinst;${CMAKE_SOURCE_DIR}/package_scripts/prerm;${CMAKE_SOURCE_DIR}/package_scripts/postrm")
+  SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/scripts/debian/postinst;${CMAKE_SOURCE_DIR}/scripts/debian/prerm")
 
 # Uncomment to add dependencies comma separated
 # SET(CPACK_DEBIAN_PACKAGE_DEPENDS "iri-<package_name>-dev (>= 1.0~${DISTRIB})")
diff --git a/scripts/debian/postinst b/scripts/debian/postinst
new file mode 100644
index 0000000..cb95760
--- /dev/null
+++ b/scripts/debian/postinst
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+set -e
+
+case "$1" in
+  configure)
+    echo "  Addind user to dialout group..."
+    sudo usermod -a -G dialout $SUDO_USER
+    echo "  Done."
+    echo "  Adding ftdi udev rule..."
+
+    FILE="/etc/udev/rules.d/99-ftdi.rules"
+    LINE0="#The following line allow the users on dialout to access SUBSYSTEM:VENDOR:PRODUCT=usb|usb_device:0403:6001 devices"
+    LINE1="SUBSYSTEM==\"usb|usb_device\", ATTRS{idVendor}==\"0403\", ATTRS{idProduct}==\"6001\", GROUP=\"dialout\""
+
+    sudo touch $FILE
+    grep -qF -- "$LINE0" "$FILE" || echo "$LINE0" | sudo tee -a "$FILE" > /dev/null
+    grep -qF -- "$LINE1" "$FILE" || echo "$LINE1" | sudo tee -a "$FILE" > /dev/null
+
+    sudo udevadm control --reload-rules
+    sudo service udev restart
+    echo "  Done. Need to unplug-plug devices for changes to take effect"
+  ;;
+  abort-upgrade)
+
+  ;;
+  abort-remove)
+
+  ;;
+  abort-deconfigure)
+
+  ;;
+esac   
+
+# usermod -a -G dialout $SUDO_USER
+
+# echo "SUBSYSTEM==\"usb|usb_device\", ATTRS{idVendor}==\"0403\", ATTRS{idProduct}==\"6001\", GROUP=\"dialout\"" > /etc/udev/rules.d/99-ftdi.rules
+
+# udevadm control --reload-rules
+# service udev restart
+
+exit 0
diff --git a/scripts/debian/prerm b/scripts/debian/prerm
new file mode 100644
index 0000000..05ba2b2
--- /dev/null
+++ b/scripts/debian/prerm
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+set -e
+
+case "$1" in
+  remove)
+    # echo "  Removing ftdi udev rule..."
+    # FILE="/etc/udev/rules.d/99-ftdi.rules"
+
+    # sudo sed -i -E "/SUBSYSTEM.*usb.usb_device.*idVendor.*0403.*idProduct.*6001.*GROUP.*dialout\"/d" $FILE
+    # sudo sed -i -E "/#The following line allow the users on dialout to access SUBSYSTEM:VENDOR:PRODUCT=usb|usb_device:0403:6001 devices/d" $FILE
+
+    # sudo udevadm control --reload-rules
+    # sudo service udev restart
+    # echo "  Done. Need to unplug-plug devices for changes to take effect"
+
+    echo "---=== WARNING: The user continues on the dialout group. Remove it if necessary. ===---"
+    echo "---=== WARNING: The ftdi udev rule wasn't removed from 99-ftdi.rules. Remove it if necessary. ===---"
+  ;;
+  upgrade)
+
+  ;;
+  deconfigure)
+
+  ;;
+  failed-upgrade)
+
+  ;;
+esac    
+
+exit 0
-- 
GitLab