#!/mod/bin/jimsh source /mod/webif/lib/setup require system.class ts.class proc do_shrink {ts} { if {[$ts flag "Shrunk"]} { return } set file [file rootname [$ts get file]] if {[$ts inuse]} { return } if {[catch { set perc [exec /mod/bin/stripts -aq $file] } msg]} { return } if {[string match {*%} $perc]} { set perc [string range $perc 0 end-1] } else { set perc 0 } if {$perc == 0} { puts " Flagging $file as shrunk..." $ts set_shrunk } } proc entries {dir callback} { foreach entry [readdir -nocomplain $dir] { if {![string match {*.ts} $entry} continue if {[catch {set ts [ts fetch "$dir/$entry"]}]} continue if {$ts == 0} continue $callback $ts } } proc scan {dir} { puts "Scanning $dir..." file stat "$dir/" st if {$st(dev) != $::rootdev} { return } entries $dir do_shrink foreach entry [readdir -nocomplain $dir] { if {[file isdirectory "$dir/$entry"]} { scan "$dir/$entry" } } } set root [system mediaroot] file stat "$root/" rootstat set rootdev $rootstat(dev) scan $root