#!/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 "}"

