#!/mod/bin/jimsh package require cgi #puts "Content-Type: text/plain" puts "Content-Type: application/json" puts "" cgi_input #cgi_dump #set _cgi(dir) "/media/My Video" set dir [dict get $_cgi dir] #9.4G /media/My Video/Archive #1.4G /media/My Video/CSI_ Crime Scene Investigation puts "{" regsub -all {([\\["$])} $dir {\\\1} xdir foreach line [split [exec /mod/bin/busybox/du -h -d 1 "$dir/"] "\n"] { lassign [split $line "\t"] size node regsub -- "^$xdir/" $node "" node puts "\"$node\" : \"$size\"," } # Handle symbolic links. foreach file [glob -nocomplain "$dir/*"] { if {[catch {set lk [file readlink $file]}]} continue if {![string match "/*" $lk]} { set lk "$dir/$lk" } if {![file isdirectory $lk]} continue 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\"," } } } puts "\"dummy\" : \"\"" puts "}"