]> oss.titaniummirror.com Git - ovzbpc.git/blobdiff - esata
First version of the esata script.
[ovzbpc.git] / esata
diff --git a/esata b/esata
new file mode 100755 (executable)
index 0000000..ba81667
--- /dev/null
+++ b/esata
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+DEV=/dev/sdb
+MNT=/media/esata-
+DELAY=3
+
+registered() {
+    if [ -b "$DEV" ]; then
+       return 0
+    else
+       return 1
+    fi
+}
+
+mounted() {
+    if mount | grep -q "$MNT"; then
+       return 0
+    else
+       return 1
+    fi
+}
+
+doregister() {
+    registered && return 0
+    scsiadd -a 1 0 0 0 >/dev/null || return 1
+    sleep $DELAY
+    registered && return 0 || return 0
+}
+
+domount() {
+    mounted && return 0
+    doregister || return 1
+    mkdir -p "${MNT}1" || return 1
+    mount ${DEV}1 ${MNT}1 || return 1
+    mkdir -p "${MNT}2" || return 1
+    mount ${DEV}2 ${MNT}2 || return 1
+    return 0
+}
+
+dounregister() {
+    registered || return 0
+    scsiadd -r 1 0 0 0 >/dev/null || return 1
+    sleep $DELAY
+    registered && return 1 || return 0
+}
+
+doumount() {
+    mounted || return 0
+    umount ${MNT}2 || return 1
+    umount ${MNT}1 || return 1
+    mounted && return 1
+    dounregister || return 1
+    return 0
+}
+
+if [ "$1" = "mount" ]; then
+    if domount; then
+       echo "esata is mounted"
+    else
+       echo "$0: cannot mount esata" >&2
+       dounregister
+    fi
+elif [ "$1" = "umount" -o "$1" = "unmount" ]; then
+    if doumount; then
+       echo "esata is unmounted"
+    else
+       echo "$0: cannot unmount esata" >&2
+       exit 1
+    fi
+elif [ "$1" = "register" ]; then
+    if doregister; then
+       echo "esata is registered"
+    else
+       echo "$0: cannot register esata" >&2
+       exit 1
+    fi
+elif [ "$1" = "status" ]; then
+    if mounted; then
+       echo "esata is mounted"
+    elif registered; then
+       echo "esata is registered but not mounted"
+    else
+       echo "esata is unregistered"
+    fi
+    #mount | grep "$DEV"
+    #scsiadd -p | grep "scsi1"
+else
+    echo "usage: $0 [mount|umount|register|status]"
+fi
+exit 0