From 460f79a86410db750c7334cfdf9934ad0149f146 Mon Sep 17 00:00:00 2001 From: mh Date: Sun, 15 Sep 2024 18:35:23 +0330 Subject: [PATCH] Refactoring --- src/scripts/utils/dvd/dvd-storage-action | 93 --------------------- src/scripts/utils/dvd/dvd-storage-action.sh | 13 +++ src/scripts/utils/usb/usb-storage-action | 37 -------- src/scripts/utils/usb/usb-storage-action.sh | 13 +++ 4 files changed, 26 insertions(+), 130 deletions(-) delete mode 100644 src/scripts/utils/dvd/dvd-storage-action create mode 100644 src/scripts/utils/dvd/dvd-storage-action.sh delete mode 100644 src/scripts/utils/usb/usb-storage-action create mode 100644 src/scripts/utils/usb/usb-storage-action.sh diff --git a/src/scripts/utils/dvd/dvd-storage-action b/src/scripts/utils/dvd/dvd-storage-action deleted file mode 100644 index b8f5f8c..0000000 --- a/src/scripts/utils/dvd/dvd-storage-action +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash - -ACTION=$1 -DEVNAME=$2 - -SOCKET_PATH="/tmp/usb-Sono-Socket.socket" -LOG_FILE="/tmp/tmpDvd.log" -DEBOUNCE_FILE="/tmp/dvd_debounce_$(echo $DEVNAME | tr '/' '-')" -DEBOUNCE_TIME=10 # seconds - -current_time=$(date +%s) - -# Function to log messages -log_message() { - local message=$1 - echo $message | socat - UNIX-CONNECT:$SOCKET_PATH - echo $message >> $LOG_FILE -} - -# Function to get the size of the DVD -get_dvd_size() { - udisksctl info -b $DEVNAME | grep 'Size:' | awk '{print $2}' | head -n 1 -} - -# Function to check for debounce -check_debounce() { - SIZE=$(get_dvd_size) - if [SIZE -eq 0]; then - ATTEMPTS=3 - while [ "$SIZE" -eq 0 ] && [ $ATTEMPTS -gt 0 ]; do - sleep 2 - SIZE=$(get_dvd_size) - log_message "Debounced: Retried size of $DEVNAME is $SIZE" - ATTEMPTS=$((ATTEMPTS - 1)) - done - elif [SIZE -eq 0]; then - log_message "exit on: Retried size of $DEVNAME is $SIZE" - exit 0 - fi - - if [ -f "$DEBOUNCE_FILE" ]; then - last_run_time=$(cat $DEBOUNCE_FILE) - elapsed_time=$((current_time - last_run_time)) - if [ $elapsed_time -lt $DEBOUNCE_TIME ]; then - log_message "Debounced: $ACTION $DEVNAME" - exit 0 - fi - fi - echo $current_time > $DEBOUNCE_FILE -} - -check_debounce - - - -if [ "$ACTION" == "change" ]; then - # Introduce a delay before checking the device - sleep 2 # Wait for 2 seconds before proceeding - - # Check if the device is already mounted - MOUNTED=$(lsblk -o MOUNTPOINT -nr $DEVNAME) - if [ -z "$MOUNTED" ]; then - # Device is not mounted, check if it is a raw DVD - SIZE=$(get_dvd_size) - - # Debug output for size - log_message "DEBUG: Initial size of $DEVNAME is $SIZE" - - # Retry logic for getting the size - ATTEMPTS=3 - while [ "$SIZE" -eq 0 ] && [ $ATTEMPTS -gt 0 ]; do - sleep 2 - SIZE=$(get_dvd_size) - log_message "DEBUG: Retried size of $DEVNAME is $SIZE" - ATTEMPTS=$((ATTEMPTS - 1)) - done - - if [ "$SIZE" -gt 0 ]; then - log_message "success insert raw DVD $DEVNAME" - else - # Proceed to mount the device - udisksctl mount -b $DEVNAME - if [ $? -eq 0 ]; then - log_message "success mount $DEVNAME" - else - log_message "failed to mount $DEVNAME" - fi - fi - else - log_message "$DEVNAME is already mounted at $MOUNTED" - fi - log_message "success insert $DEVNAME" -fi diff --git a/src/scripts/utils/dvd/dvd-storage-action.sh b/src/scripts/utils/dvd/dvd-storage-action.sh new file mode 100644 index 0000000..988b8c4 --- /dev/null +++ b/src/scripts/utils/dvd/dvd-storage-action.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +ACTION=$1 +DEVICE_NAME=$2 +SOCKET_PATH="/run/dvd-Sono-Socket.socket" + +if [ "$ACTION" == "add" ]; then + echo -n "success insert $DEVICE_NAME" | socat - UNIX-CONNECT:$SOCKET_PATH + echo "success insert $DEVICE_NAME with socat" >> /tmp/tmpDvd.log +elif [ "$ACTION" == "remove" ]; then + echo -n "success eject $DEVICE_NAME" | socat - UNIX-CONNECT:$SOCKET_PATH + echo "success eject $DEVICE_NAME" >> /tmp/tmpDvd.log +fi diff --git a/src/scripts/utils/usb/usb-storage-action b/src/scripts/utils/usb/usb-storage-action deleted file mode 100644 index c7a03c1..0000000 --- a/src/scripts/utils/usb/usb-storage-action +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -# Get the action (add or remove) and the device name from the udev rule -ACTION=$1 - -# Get the device name from the udev rule -DEVICE_NAME=$2 - -SOCKET_PATH="/tmp/usb-Sono-Socket.socket" - -if [ "$ACTION" == "add" ]; then - # Mount the device - udisksctl mount -b "$DEVICE_NAME" - - # Check if the mount was successful - if [ $? -eq 0 ]; then - # Write a message to the socket - echo "success connect $DEVICE_NAME" | socat - UNIX-CONNECT:$SOCKET_PATH - echo "success connect $DEVICE_NAME" >> /tmp/tmp.log - else - echo "failure connect $DEVICE_NAME" | socat - UNIX-CONNECT:$SOCKET_PATH - echo "failure connect $DEVICE_NAME" >> /tmp/tmp.log - fi -elif [ "$ACTION" == "remove" ]; then - # Unmount the device - udisksctl unmount -b "$DEVICE_NAME" - - # Check if the unmount was successful - if [ $? -eq 0 ]; then - # Write a message to the socket - echo "success disconnect $DEVICE_NAME" | socat - UNIX-CONNECT:$SOCKET_PATH - echo "success disconnect $DEVICE_NAME" >> /tmp/tmp.log - else - echo "failure disconnect $DEVICE_NAME" | socat - UNIX-CONNECT:$SOCKET_PATH - echo "failure disconnect $DEVICE_NAME" >> /tmp/tmp.log - fi -fi diff --git a/src/scripts/utils/usb/usb-storage-action.sh b/src/scripts/utils/usb/usb-storage-action.sh new file mode 100644 index 0000000..58cd424 --- /dev/null +++ b/src/scripts/utils/usb/usb-storage-action.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +ACTION=$1 +DEVICE_NAME=$2 +SOCKET_PATH="/run/usb-Sono-Socket.socket" + +if [ "$ACTION" == "add" ]; then + echo -n "success connect $DEVICE_NAME" | socat - UNIX-CONNECT:$SOCKET_PATH + echo "success connect $DEVICE_NAME with socat" >> /tmp/tmpUsb.log +elif [ "$ACTION" == "remove" ]; then + echo -n "success disconnect $DEVICE_NAME" | socat - UNIX-CONNECT:$SOCKET_PATH + echo "success disconnect $DEVICE_NAME" >> /tmp/tmpUsb.log +fi