2011-06-25 20:59:50 +00:00
|
|
|
#!/mod/bin/jimsh
|
|
|
|
|
|
|
|
package require cgi
|
|
|
|
|
2011-08-20 20:45:23 +00:00
|
|
|
#puts "Content-Type: text/plain"
|
2011-06-25 20:59:50 +00:00
|
|
|
puts "Content-Type: application/json"
|
|
|
|
puts ""
|
|
|
|
|
|
|
|
cgi_input
|
|
|
|
#cgi_dump
|
|
|
|
|
2011-06-27 21:59:07 +00:00
|
|
|
#set _cgi(dir) "/media/My Video"
|
2011-06-25 20:59:50 +00:00
|
|
|
|
|
|
|
set dir [dict get $_cgi dir]
|
|
|
|
|
|
|
|
#9.4G /media/My Video/Archive
|
|
|
|
#1.4G /media/My Video/CSI_ Crime Scene Investigation
|
|
|
|
puts "{"
|
2012-01-18 00:07:25 +00:00
|
|
|
regsub -all {([\\["$])} $dir {\\\1} xdir
|
2012-01-18 00:02:55 +00:00
|
|
|
foreach line [split [exec /mod/bin/busybox/du -h -d 1 "$dir/"] "\n"] {
|
|
|
|
lassign [split $line "\t"] size node
|
2012-01-18 00:07:25 +00:00
|
|
|
regsub -- "^$xdir/" $node "" node
|
2011-06-25 20:59:50 +00:00
|
|
|
puts "\"$node\" : \"$size\","
|
|
|
|
}
|
2011-08-20 20:45:23 +00:00
|
|
|
|
|
|
|
# Handle symbolic links.
|
|
|
|
foreach file [glob -nocomplain "$dir/*"] {
|
|
|
|
if {[catch {set lk [file readlink $file]}]} continue
|
2011-08-20 21:30:43 +00:00
|
|
|
|
|
|
|
if {![string match "/*" $lk]} { set lk "$dir/$lk" }
|
|
|
|
|
2011-08-20 20:50:40 +00:00
|
|
|
if {![file isdirectory $lk]} continue
|
2011-08-20 20:45:23 +00:00
|
|
|
foreach line [split [exec /mod/bin/busybox/du -h "$lk"] "\n"] {
|
|
|
|
set fields [split $line "\t"]
|
|
|
|
if {[lindex $fields 1] eq $lk} {
|
|
|
|
set node [file tail $file]
|
|
|
|
set size [lindex $fields 0]
|
|
|
|
puts "\"$node\" : \"@$size\","
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-06-25 20:59:50 +00:00
|
|
|
puts "\"dummy\" : \"\""
|
|
|
|
puts "}"
|
|
|
|
|