home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/wish
- # hacked by Barry Kauler for Puppy Linux 2005
- #2006, modified for puppy2.
- proc vlabel {w text var} {
- frame $w
- #BK label $w.label -width 6 -text $text -anchor e
- label $w.label -width 4 -text $text -anchor e
- #BK label $w.value -width 9 -text $var -anchor e
- label $w.value -width 10 -text $var -anchor e
- pack $w.label $w.value -side left
- return $w
- }
- proc gui_disk {w i} {
- global disk
- pack [frame $w -relief sunken -bd 3]
- frame $w.stat
- canvas $w.view -width 81 -height 41
- pack $w.stat $w.view
- pack [vlabel $w.stat.cap 0 ""]
- pack [vlabel $w.stat.used "Used" -]
- pack [vlabel $w.stat.free "Free" -]
- $w.view create arc 2 2 79 40 -fill black -start 0 -extent 359
- set r [$w.view create arc 2 2 78 38]
- set b [$w.view create arc 2 2 78 38]
- set disk(c$i) "$w $r $b"
- return $w
- }
- proc fill_disk {i} {
- global disk
- set nick [expr [string length [lindex $disk($i) 1]] -2]
- set pct [string range [lindex $disk($i) 1] 0 $nick]
- set full [expr $pct.0 / 100.0 * 360]
- set emp [expr 359 - $full]
- set w [lindex $disk(c$i) 0]
- set r [lindex $disk(c$i) 1]
- set b [lindex $disk(c$i) 2]
- #BK $w.stat.cap.value configure -text "[lindex $disk($i) 0] "
- $w.stat.cap.value configure -text "[lindex $disk($i) 0]"
- #BK $w.stat.cap.label configure -text " [lindex $disk($i) 1] Full"
- #BK2 $w.stat.cap.label configure -text " [lindex $disk($i) 1]"
- $w.stat.cap.label configure -text ""
- $w.stat.used.value configure -text [expr [lindex $disk($i) 2] ]
- $w.stat.free.value configure -text [expr [lindex $disk($i) 3] ]
- $w.view itemconfigure $r -fill grey50 -start 0 -extent $full
- $w.view itemconfigure $b -fill forestgreen -start $full -extent $emp
- if {$pct > 90} { $w.view itemconfigure $b -fill yellow }
- }
- proc df_check {} {
- global disk
- # set pupfile [exec cat /tmp/pupfile.txt ]
-
- #v1.0.7 bugfix if no loop1...
- set dfall [exec /bin/df ]
- set testloop1 [ lsearch -exact $dfall "/dev/loop1" ]
- if { $testloop1 == -1 } then {
- set pupfile "xxx"
- } else {
- set pupfile [exec /bin/losetup-FULL /dev/loop1 | grep "/pup_save" | cut -f 2 -d "(" | cut -f 1 -d ")" | cut -f 4 -d "/" ]
- }
-
- # v1.0.7...
- set df [exec /bin/df -m | grep -v "/dev/root" | grep -v "/dev/loop0" | grep -v "/dev/loop2" | grep -v "/dev/loop3" | grep -v "/dev/loop4" | grep -v "/dev/loop5" | grep -v "none" | grep -v "rootfs" | sed -e "s/tmpfs/ramdisk/g" | sed -e "s/\\/dev\\/loop1/$pupfile/g" ]
- set i 0
- while {[string length $df] > 1} {
- set n [string first "\n" $df]
- if {$n == -1} { set n [string length $df] }
- set line [string range $df 0 $n]
- set df [string range $df [expr $n +1] end]
- set USED_BLKS [lindex $line 2]
- set FREE_BLKS [lindex $line 3]
- set PERCENT [lindex $line 4]
- set PARTITION [lindex $line 0]
- set disk($i) "$PARTITION $PERCENT $USED_BLKS $FREE_BLKS"
- if {$i != 0} { # skip title line
- if ![winfo exists .w$i] { pack [gui_disk .w$i $i] -side left}
- fill_disk $i
- }
- incr i
- }
- after 10000 df_check
- }
- wm title . "Mounted partitions, sizes in Megabytes"
- wm geometry . +90-35
- df_check
-