home *** CD-ROM | disk | FTP | other *** search
/ PCNET 2006 September - Disc 1 / PCNET_CD_2006_09.iso / linux / puppy-barebones-2.01r2.iso / pup_201.sfs / usr / sbin / partview < prev    next >
Encoding:
Tcl/Tk script  |  2006-01-26  |  3.0 KB  |  85 lines

  1. #!/usr/bin/wish
  2. # hacked by Barry Kauler for Puppy Linux 2005 
  3. #2006, modified for puppy2.
  4. proc vlabel {w text var} {
  5.     frame $w
  6. #BK    label $w.label -width 6 -text $text -anchor e
  7.     label $w.label -width 4 -text $text -anchor e
  8. #BK    label $w.value -width 9 -text $var  -anchor e
  9.     label $w.value -width 10 -text $var  -anchor e
  10.     pack $w.label $w.value -side left
  11.     return $w
  12. }
  13. proc gui_disk {w i} {
  14.     global disk
  15.     pack [frame $w -relief sunken -bd 3]
  16.     frame $w.stat 
  17.     canvas $w.view -width 81 -height 41
  18.     pack $w.stat $w.view
  19.     pack [vlabel $w.stat.cap  0    ""]
  20.     pack [vlabel $w.stat.used "Used"  -]
  21.     pack [vlabel $w.stat.free "Free"  -] 
  22.     $w.view create arc 2 2 79 40 -fill black -start 0 -extent 359
  23.     set r [$w.view create arc 2 2 78 38]
  24.     set b [$w.view create arc 2 2 78 38]
  25.     set disk(c$i) "$w $r $b"
  26.     return $w
  27. }
  28. proc fill_disk {i} {
  29.     global disk
  30.     set nick [expr [string length [lindex $disk($i) 1]] -2]
  31.     set pct [string range [lindex $disk($i) 1] 0 $nick]
  32.     set full [expr $pct.0 / 100.0 * 360] 
  33.     set emp [expr 359 - $full]
  34.     set w [lindex $disk(c$i) 0]
  35.     set r [lindex $disk(c$i) 1]
  36.     set b [lindex $disk(c$i) 2]
  37. #BK    $w.stat.cap.value configure -text "[lindex $disk($i) 0]  "
  38.     $w.stat.cap.value configure -text "[lindex $disk($i) 0]"
  39. #BK    $w.stat.cap.label  configure -text "  [lindex $disk($i) 1] Full"
  40. #BK2    $w.stat.cap.label  configure -text "  [lindex $disk($i) 1]"
  41.     $w.stat.cap.label  configure -text ""
  42.     $w.stat.used.value configure -text [expr [lindex $disk($i) 2] ]
  43.     $w.stat.free.value configure -text [expr [lindex $disk($i) 3] ]
  44.     $w.view itemconfigure $r -fill grey50 -start 0 -extent $full
  45.     $w.view itemconfigure $b -fill forestgreen -start $full -extent $emp
  46.     if {$pct > 90} { $w.view itemconfigure $b -fill yellow }
  47. }
  48. proc df_check {} {
  49.     global disk
  50. #        set pupfile [exec cat /tmp/pupfile.txt ]
  51.  
  52.         #v1.0.7 bugfix if no loop1...
  53.         set dfall [exec /bin/df ]
  54.         set testloop1 [ lsearch -exact $dfall "/dev/loop1" ]
  55.         if { $testloop1 == -1 } then {
  56.          set pupfile "xxx"
  57.         } else {
  58.          set pupfile [exec /bin/losetup-FULL /dev/loop1 | grep "/pup_save" | cut -f 2 -d "(" | cut -f 1 -d ")" | cut -f 4 -d "/" ]
  59.         }
  60.  
  61. # v1.0.7...
  62.     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" ] 
  63.     set i 0
  64.     while {[string length $df] > 1} {
  65.         set n [string first "\n" $df]
  66.         if {$n == -1} { set n [string length $df] }
  67.         set line [string range $df 0 $n]
  68.         set df [string range $df [expr $n +1] end]
  69.         set USED_BLKS [lindex $line 2]
  70.         set FREE_BLKS [lindex $line 3]
  71.         set PERCENT   [lindex $line 4] 
  72.         set PARTITION [lindex $line 0]
  73.         set disk($i) "$PARTITION $PERCENT $USED_BLKS $FREE_BLKS"
  74.         if {$i != 0} {            # skip title line 
  75.             if ![winfo exists .w$i] { pack [gui_disk .w$i $i] -side left}
  76.             fill_disk $i
  77.         }
  78.         incr i
  79.     }
  80.     after 10000 df_check
  81. }
  82. wm title . "Mounted partitions, sizes in Megabytes"
  83. wm geometry . +90-35
  84. df_check
  85.