PirateBoxScripts_Webserver/piratebox/piratebox/rpi/bin/usb_share.sh

47 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
# Find a vfat partition and configure it as an external share
MOUNTPOINT="/mnt/usbshare"
FS="vfat"
UUIDS=$(blkid | grep "/dev/sd*.*TYPE=\"${FS}\"" | egrep -o " UUID=\"([a-zA-Z0-9-])*\"" | sed 's/ //g')
if [ $(echo "${UUIDS}" | wc -l) -gt 1 ]; then
echo "You seem to have more than one valid ${FS} partition for a USB share:"
echo "${UUIDS}\n"
echo "Please make sure you have a USB thumb drive attached with a single ${FS} partition."
exit 1
fi
if [ $(echo "${UUIDS}" | wc -l) -lt 1 ] || [[ $UUIDS == "" ]]; then
echo "You seem to have no valid ${FS} partition for a USB share."
echo "Please make sure you have a USB thumb drive attached with a single ${FS} partition."
exit 1
fi
UUID=$(echo "${UUIDS}" | cut -f2 -d" " | sed s/"\""/""/g)
grep "${UUID}" /etc/fstab > /dev/null
if [ $? -eq 0 ]; then
echo "Error: This disk is already configured as an USB share..."
exit 1
fi
echo "## Adding USB share..."
mkdir -p "${MOUNTPOINT}" > /dev/null
echo "${UUID} ${MOUNTPOINT} vfat umask=0,noatime,rw,user,uid=nobody,gid=nogroup 0 0" >> /etc/fstab
mount "${MOUNTPOINT}" > /dev/null
if [ $? == 0 ]; then
echo "## Moving files..."
mv /opt/piratebox/share "${MOUNTPOINT}/share" > /dev/null 2>&1
ln -s "${MOUNTPOINT}/share" /opt/piratebox/share > /dev/null
else
echo "Error: Mounting file system failed, will not move files..."
cat "/etc/fstab"
fi
# Force update diskwirte
touch -t 197001010101 /opt/piratebox/www/diskusage.html
wget http://127.0.0.1/cgi-bin/diskwrite.py -q -O -
exit 0