#!/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] set dlen [string length "$dir/"] #9.4G /media/My Video/Archive #1.4G /media/My Video/CSI_ Crime Scene Investigation puts "{" foreach line [split [exec /mod/bin/busybox/du -h -d 1 "$dir/"] "\n"] { lassign [split $line "\t"] size node set node [string range $node $dlen end] puts "\"$node\" : \"$size\"," } # Handle symbolic links. foreach file [readdir $dir] { set file "$dir/$file" 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 "}"