sweeper/webif/plugin/sweeper/harness.jim

58 lines
1.2 KiB
Plaintext
Executable File

source /mod/webif/lib/setup
require lock system.class ts.class pretty_size browse.class \
safe_delete settings.class plugin queue.class
proc log {msg {level 1}} {
puts "[\
clock format [clock seconds] -format "%d/%m/%Y %H:%M"\
] - $msg"
}
proc elapsed {start} {
return $(([clock milliseconds] - $start) / 1000.0)
}
proc startclock {} {
set ::startclock_s [clock milliseconds]
}
proc endclock {size} {
set el [elapsed $::startclock_s]
set rate $($size / $el)
return "[pretty_size $size] in $el seconds - [pretty_size $rate]/s"
}
proc register {args} {}
proc scan_run {dir flag callback {seen {}}} {
global dustbin
if {[string match {\[*} [string trimleft [file tail $dir]]]} return
file stat $dir st
set key "$st(dev):$st(ino)"
if {$key in $seen} {
log "Already seen $dir ($key)" 2
return
}
lappend seen $key
if {[file exists "$dir/.$flag"]} { $callback $dir }
foreach entry [readdir -nocomplain $dir] {
if {[file isdirectory "$dir/$entry"]} {
scan_run "$dir/$entry" $flag $callback $seen
file stat "$dir/$entry" st
set key "$st(dev):$st(ino)"
lappend seen $key
}
}
}
set root [system mediaroot]
source /mod/webif/plugin/sweeper/auto.hook