58 lines
1.2 KiB
Plaintext
Executable File
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
|
|
|
|
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
|
|
|