#!/bin/sh
# filesystem_mounter.sh - a demonstration of opie-sh
#
# Copyright (C) 2002 gonz@directbox.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# 20020524-2 - using df from diskfree now
# 20020524-1 - just code optix
# 20020519-1 - added information screen with manpage excerpt, added
# better returncode-checking
# 20020517-2 - fixed output bug
# 20020517-1 - nicer fullscreen, added about, tried icon
#
OPIE_SH=$OPIEDIR/bin/opie-sh
######################################################################
# subroutines
about() {
( echo ""
echo "
"
) | $OPIE_SH -t fsmounter -f &
SCREENCLEAN=$!
sleep 1
}
beforemount() {
( echo ""
echo "
" echo "All files accessible in a Unix system are arranged in one big tree, the file hierarchy, rooted at /. These files can be spread out over several devices. The mount command serves to attach the file system found on some device to the big file tree. Conversely, the umount(8) command will detach it again." echo "
"
) | $OPIE_SH -t fsmounter -f &
SCREENCLEAN2=$!
sleep 1
}
cleanup() {
kill $SCREENCLEAN $SCREENCLEAN2
rm -f /tmp/qcop-msg-filesystem_mounter.sh
}
get_action() {
# ask what to do (start/stop/status)
#
$OPIE_SH -m -t "Select Action" \
-M "action for $MOUNTPOINT ?" \
-g -0 mount -1 umount
RETURNCODE=$?
case $RETURNCODE in
-1|255) echo unexpected input detected, exiting. | $OPIE_SH -f
cleanup ;;
0) ACTION=mount ;;
1) ACTION=umount ;;
esac
kill $SCREENCLEAN2
}
select_mountpoint() {
# present service list and choose
#
MOUNTPOINT=` cat /etc/fstab | cut -f1 \
| cut -d " " -f1 \
| egrep -v "(tmpfs|proc|devpts|^#)" \
| $OPIE_SH -i -l \
-g -t "SELECT MOUNTPOINT" \
-L "select fs: " `
}
######################################################################
# main
about
select_mountpoint
beforemount
get_action
if [ "$MOUNTPOINT" = "" ]
then echo "ugly error...." | $OPIE_SH -f ; cleanup
fi
( echo ""
echo "
" $ACTION $MOUNTPOINT 2>&1 echo "
" echo "
/g' \ | sed 's/$/<\/td><\/tr>/' \ | sed 's/^/ |
/' ; echo " |