#!/bin/sh
#set -x

# J.Kobus 03/2019, 03/2020

# Ten skryp zakłada, że w /etc/udev/rules.d jest plik 10-usbkeys.rules zawierający
# wiersze postaci
# SUBSYSTEMS=="usb", ATTRS{product}=="Flash Disk", ATTRS{serial}=="FCE7073C4301C68A", \
#     KERNEL=="sd?", SYMLINK+="usb256m", RUN+="/usr/bin/at -M -f /home/jkob/bin/backup2usbctl"
# które definiują symlinki do odpowiednich urządzeń USB.

delay=0.25

arg1=${1:-cp}
arg2=${2:-usb256m}

function help {

    echo "usage: $0 -h|--help"
    echo "       $0 [cp [usb256m]]"
    echo "       $0 ls|mount|rm|unmount [usb256m]"
    echo "       $0 cp|ls|mount|rm|unmount sd16m|usb256m|usb2g "
}

[[ "$arg1" == "--help" ]] || [[ "$arg1" == "-h" ]] && help && exit

if [[ "$arg2" == "sd16m" || "$arg2" ==  "SD16m" ]]
then
    device=/dev/sd16m
    /run/media/$USER/6D26-6FA5
    file2backup=/home/jkob/ssk-admin/lecture/ssk-admin.pdf
    file=$(basename $file2backup)
fi

if [[ "$arg2" == "usb256m" ]]
then
    device=/dev/usb256m
    if [[ $USER == "" ||  $USER == root ]]
    then
     	mpoint=/run/media/$USER/F768-5ED3
    else
     	#mpoint=/run/media/$USER/F768-5ED32
	mpoint=/run/media/$USER/usb256m
    fi
    file2backup=/home/jkob/ssk-admin/lecture/ssk-admin.pdf
    file=$(basename $file2backup)
fi

[[ -n $mpoint ]] && mounted=$(mount | grep $mpoint)

if [[ "$arg1" == "mount" ]] && [[ -z $mounted ]]
then
    udisksctl mount -b $device
    exit
fi

if [[ "$arg1" == "unmount" ]]
then
    if [[ -n $mounted ]]
    then
	udisksctl unmount -b $device
	exit
    else
	echo "Warning: missing mount point ... $device already unmounted? ..."
    fi
    exit
fi

if [[ "$arg1" == "cp" ]]; then
    [[ -z $mounted ]] && udisksctl mount -b $device && sleep $delay
    mpoint=$(mount | grep -P "/run/media/$USER" | gawk '{print $3}')
    cp $file2backup $mpoint
    ls -la $mpoint/$file 
    udisksctl unmount -b $device
    sync
    sleep $delay
    exit
fi


if [[ "$arg1" == "rm" ]]; then
    [[ -z $mounted ]] && udisksctl mount -b $device && sleep $delay
    mpoint=$(mount | grep -P "/run/media/$USER" | gawk '{print $3}')
    rm $mpoint/$file
    sync
    sleep $delay
    udisksctl unmount -b $device
    exit
fi

if [[ "$arg1" == "ls" && -n $device ]]
then
    if [[ -z $mounted ]]
    then
	udisksctl mount -b $device
	mpoint=$(mount | grep -P "/run/media/$USER" | gawk '{print $3}')
	ls -la $mpoint/
	sync
	sleep $delay
	udisksctl unmount -b $device	
    else
	ls -la $mpoint/
    fi
    exit
fi

#
