slitaz-tools annotate lib/libmountbox @ rev 262

mountbox: add floppies
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Jul 23 21:22:49 2008 +0000 (2008-07-23)
parents db0e82bebc70
children 9fbb84b399ed
rev   line source
pankso@183 1 #!/bin/sh
pankso@183 2 #
MikeDSmith25@252 3 # Libmountbox provides devices list in suitable format for GTK tree
MikeDSmith25@252 4 # and various dialog boxes to mount, umount, etc.
pankso@183 5 #
pankso@183 6 # (C) 2008 - SliTaz GNU/Linux project.
pankso@183 7 #
pankso@183 8
pankso@183 9 # Short usage.
pankso@183 10 usage()
pankso@183 11 {
pankso@183 12 echo -e "\nUsage: $0 command\n
MikeDSmith25@252 13 Output commands:
pankso@183 14 list-mounted List all mounted devices in suitable GTK tree format.
pankso@183 15 list-umounted List all umounted in suitable GTK tree format.
pankso@183 16
pankso@183 17 GTKdialog boxes
pankso@183 18 mounted-fs-infos Display a mounted devices infos with actions.
pankso@183 19 umounted-fs-infos Display a umounted devices infos with actions.\n"
pankso@183 20 }
pankso@183 21
MikeDSmith25@252 22 # Format df -h output for GTK tree.
pankso@183 23 mounted_fs_data()
pankso@183 24 {
pankso@183 25 SIZE=`echo $RES | cut -d " " -f 2`
pankso@183 26 USED=`echo $RES | cut -d " " -f 3`
pankso@183 27 AVAILABLE=`echo $RES | cut -d " " -f 4`
pankso@183 28 PCT=`echo $RES | cut -d " " -f 5`
pankso@183 29 MOUNTED_ON=`echo $RES | cut -d " " -f 6`
pankso@183 30 }
pankso@183 31
pankso@183 32 case $1 in
pankso@183 33 list-mounted)
pankso@183 34 # List all fs found by: df -h
pankso@183 35 #
pankso@183 36 for dev in `df -h | grep ^/dev/[c-s]d | cut -d " " -f 1`
pankso@183 37 do
pankso@183 38 RES=`df -h $dev | grep ^$dev`
pankso@183 39 mounted_fs_data
pankso@183 40 echo "$dev | $SIZE | $USED | $AVAILABLE | $PCT | $MOUNTED_ON"
pankso@183 41 done ;;
pankso@183 42 list-umounted)
pankso@183 43 # List all umounted fs found by: fdisk -l
pankso@183 44 #
pankso@183 45 for dev in `fdisk -l | grep ^/dev | cut -d " " -f 1`
pankso@183 46 do
pankso@183 47 RES=`fdisk -l | grep $dev | sed s/*//g`
pankso@183 48 START=`echo $RES | cut -d " " -f 2`
pankso@183 49 END=`echo $RES | cut -d " " -f 3`
pankso@183 50 BLOCKS=`echo $RES | cut -d " " -f 4`
pankso@183 51 ID=`echo $RES | cut -d " " -f 5`
pascal@262 52 SYSTEM=`echo $RES | cut -d " " -f 6-`
pankso@183 53 # Bootable...
pankso@183 54 if fdisk -l | grep $dev | grep -q "*"; then
pankso@183 55 BOOT="*"
pankso@183 56 else
pankso@183 57 BOOT="-"
pankso@183 58 fi
MikeDSmith25@252 59 # Skip swap, extended, and mounted partitions.
pankso@183 60 if echo $RES | grep -q "swap" || echo $RES | grep -q "Extended" ; then
pankso@183 61 continue
pascal@262 62 elif mount | grep -q "^$dev "; then
pankso@183 63 continue
pankso@183 64 else
pankso@183 65 echo "$dev | $BOOT | $START | $END | $BLOCKS | $ID | $SYSTEM"
pankso@183 66 fi
pascal@262 67 done
pascal@262 68 echo "/dev/cdrom | - | - | - | CD/DVD | - | iso9660"
pascal@262 69 for i in /sys/devices/platform/floppy.*/block:*; do
pascal@262 70 [ -e $i ] && echo "/dev/${i#*block:} | - | - | - | floppy | - | linux"
pascal@262 71 done
pascal@262 72 ;;
pankso@183 73 mounted-fs-infos)
MikeDSmith25@252 74 # Mounted fs info and actions, rootfs or other fs.
pankso@183 75 #
pankso@183 76 if [ "$MOUNTED" == "/dev/root" ]; then
pankso@183 77 export MOUNTED_DEVICE="
pankso@183 78 <window title=\"Device: rootfs\" icon-name=\"media-flash\">
pankso@183 79 <vbox>
pankso@183 80 <text use-markup=\"true\" width-chars=\"56\">
pankso@183 81 <label>\"
pankso@183 82 <b>/dev/root</b>
pankso@183 83 \"
pankso@183 84 </label>
pankso@183 85 </text>
pankso@183 86 <text use-markup=\"true\" width-chars=\"56\">
pankso@183 87 <input>df -h / | grep ^rootfs</input>
pankso@183 88 </text>
pankso@183 89 <hbox>
pankso@183 90 <button>
pankso@183 91 <label>Browse</label>
pankso@183 92 <input file icon=\"folder-open\"></input>
pankso@183 93 <action>pcmanfm / &</action>
pankso@183 94 <action type=\"closewindow\">MOUNTED_DEVICE</action>
pankso@183 95 </button>
pankso@183 96 <button>
pankso@183 97 <input file icon=\"gtk-close\"></input>
pankso@183 98 <action type=\"closewindow\">MOUNTED_DEVICE</action>
pankso@183 99 </button>
pankso@183 100 </hbox>
pankso@183 101 </vbox>
pankso@183 102 </window>"
pankso@183 103 gtkdialog --center --program=MOUNTED_DEVICE
pankso@183 104 else
pankso@183 105 UUID=`blkid | grep ^$MOUNTED | sed 's/.*UUID=\"\([^ ]*\)\".*/\1/'`
pankso@183 106 TYPE=`blkid | grep ^$MOUNTED | sed 's/.*TYPE=\"\([^ ]*\)\".*/\1/'`
pankso@183 107 RES=`df -h $MOUNTED | grep ^$MOUNTED`
pankso@183 108 mounted_fs_data
pankso@183 109 export MOUNTED_DEVICE="
pankso@183 110 <window title=\"Device: $MOUNTED\" icon-name=\"media-flash\">
pankso@183 111 <vbox>
pankso@183 112 <text use-markup=\"true\" width-chars=\"56\">
pankso@183 113 <label>\"
pankso@183 114 Device <b>$MOUNTED</b> is mounted on <b>$MOUNTED_ON</b>
pankso@183 115
pankso@183 116 UUID: $UUID
pankso@183 117 Type: $TYPE
pankso@183 118 \"
pankso@183 119 </label>
pankso@183 120 </text>
pankso@183 121 <hbox>
pankso@183 122 <button>
pankso@183 123 <label>Browse</label>
pankso@183 124 <input file icon=\"folder-open\"></input>
pankso@183 125 <action>pcmanfm $MOUNTED_ON &</action>
pankso@183 126 <action type=\"closewindow\">MOUNTED_DEVICE</action>
pankso@183 127 </button>
pankso@183 128 <button>
pankso@183 129 <label>Umount</label>
pankso@183 130 <input file icon=\"undo\"></input>
pankso@183 131 <action>umount $MOUNTED_ON</action>
pankso@183 132 <action type=\"closewindow\">MOUNTED_DEVICE</action>
pankso@183 133 </button>
pankso@183 134 <button>
pankso@183 135 <input file icon=\"gtk-close\"></input>
pankso@183 136 <action type=\"closewindow\">MOUNTED_DEVICE</action>
pankso@183 137 </button>
pankso@183 138 </hbox>
pankso@183 139 </vbox>
pankso@183 140 </window>"
pankso@183 141 gtkdialog --center --program=MOUNTED_DEVICE
pankso@183 142 fi ;;
pankso@183 143 umounted-fs-infos)
MikeDSmith25@252 144 # Mounted fs info and actions, rootfs or other fs.
pankso@183 145 #
pankso@183 146 UUID=`blkid | grep ^$DEVICE | sed 's/.*UUID=\"\([^ ]*\)\".*/\1/'`
pankso@183 147 TYPE=`blkid | grep ^$DEVICE | sed 's/.*TYPE=\"\([^ ]*\)\".*/\1/'`
pankso@183 148 export UMOUNTED_DEVICE="
pankso@183 149 <window title=\"Device: $DEVICE\" icon-name=\"media-flash\">
pankso@183 150 <vbox>
pankso@183 151 <text use-markup=\"true\" width-chars=\"56\">
pankso@183 152 <label>\"
pankso@183 153 Mount <b>$DEVICE</b> on <b>$MOUNT_POINT</b>
pankso@183 154
pankso@183 155 UUID: $UUID
pankso@183 156 Type: $TYPE
pankso@183 157 \"
pankso@183 158 </label>
pankso@183 159 </text>
pankso@183 160
pankso@183 161 <hbox>
pankso@183 162 <button>
pankso@183 163 <label>Mount</label>
pankso@183 164 <input file icon=\"edit-redo\"></input>
pankso@183 165 <action>mkdir -p $MOUNT_POINT</action>
pankso@183 166 <action>mount $DEVICE $MOUNT_POINT</action>
pankso@183 167 <action type=\"closewindow\">MOUNTED_DEVICE</action>
pankso@183 168 </button>
pankso@183 169
pankso@183 170 <button>
pankso@183 171 <label>e2fsck check</label>
pankso@183 172 <input file icon=\"drive-harddisk\"></input>
pankso@183 173 <action>xterm -T \"e2fsck -p $DEVICE\" \
pankso@183 174 --geomery 80x12 \
pankso@183 175 -e \"echo; e2fsck -p $DEVICE; \
pankso@183 176 echo -e '----\nENTER to close Termianl'; \
pankso@183 177 read i\" &</action>
pankso@183 178 <action type=\"closewindow\">MOUNTED_DEVICE</action>
pankso@183 179 </button>
pankso@183 180
pankso@183 181 <button>
pankso@183 182 <input file icon=\"gtk-close\"></input>
pankso@183 183 <action type=\"closewindow\">UMOUNTED_DEVICE</action>
pankso@183 184 </button>
pankso@183 185 </hbox>
pankso@183 186 </vbox>
pankso@183 187 </window>"
pankso@183 188 gtkdialog --center --program=UMOUNTED_DEVICE ;;
pankso@183 189 *)
pankso@183 190 usage ;;
pankso@183 191 esac
pankso@183 192
pankso@183 193 exit 0