aboutsummaryrefslogtreecommitdiffstats
path: root/COPYING
diff options
context:
space:
mode:
authorMatthias Andree <matthias.andree@gmx.de>2006-01-17 13:47:43 +0000
committerMatthias Andree <matthias.andree@gmx.de>2006-01-17 13:47:43 +0000
commite0e411e3c9dbcd85425752633bfa63e243bf7d5b (patch)
treeeecc9634b405f402e212208ef4e0a1d97e3a08ec /COPYING
parent94b4feea8f40094be135758e23b7700f243df3e1 (diff)
downloadfetchmail-e0e411e3c9dbcd85425752633bfa63e243bf7d5b.tar.gz
fetchmail-e0e411e3c9dbcd85425752633bfa63e243bf7d5b.tar.bz2
fetchmail-e0e411e3c9dbcd85425752633bfa63e243bf7d5b.zip
Snapshot 6.3.2-rc3.
svn path=/branches/BRANCH_6-3/; revision=4647
Diffstat (limited to 'COPYING')
0 files changed, 0 insertions, 0 deletions
: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#!/bin/bash

set -e

declare -a devices

populate_devices()
{
    for devsys in /sys/class/block/sd*; do
        case $(readlink $devsys) in
            */devices/*/usb*/*/block/sd*[a-z]);;
            # Skip non removable devices (/removable in sys is not reliable
            # for usb3 disks). My definition of a removable device in this
            # script is usb devices for now.
            *) continue;;
        esac
        dev=${devsys##/sys/class/block/}
        if [ -e /sys/class/block/$dev/${dev}1 ]; then
            for subdev in /sys/class/block/$dev/${dev}*; do
                subdev=${subdev##/sys/class/block/$dev/}
                if ! mount | grep -q "^/dev/$subdev on /media/"; then
                    devices+=($subdev)
                fi
            done
        else
            if ! mount | grep -q "^/dev/$dev on /media/"; then
                devices+=($dev)
            fi
        fi
    done
}

get_label()
{
    dev=$1
    for label in /dev/disk/by-label/*; do
        label=${label##*/}
        devfound=$(readlink /dev/disk/by-label/$label)
        devfound=${devfound##*/}
        if [ "$devfound" == "$dev" ]; then
            echo $label
            return
        fi
    done
    echo $dev
}

choose_device()
{
    echo "List of mountable devices (${#devices[*]}):"
    format="  %-8s %s\n"
    printf "$format" =Device= =Label=
    for dev in ${devices[*]}; do
        printf "$format" $dev "$(get_label $dev)"
    done

    select choice in ${devices[@]}; do
        REPLY=$((REPLY-1))
        break
    done
}

if [ "$#" -eq 0 ]; then
    populate_devices
    if [ ${#devices[*]} -eq 0 ]; then
        echo "Nothing can be done, bye."
        exit 0
    fi

    if [ ${#devices[*]} -eq 1 ]; then
        dev=${devices[0]}
        label="$(get_label ${devices[0]})"
    else
        choose_device
        dev=${devices[$REPLY]}
        label="$(get_label $dev)"
    fi

    echo "mounting /dev/$dev in /media/$label"
    exec pmount $dev "$label"
fi

exec /usr/bin/pmount "$@"