hummypkg 3d75b93f1a allow deletions from inside dustbin
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@666 2a923420-c742-0410-a762-8d5b09965624
2012-01-14 00:29:44 +00:00

80 lines
1.7 KiB
Plaintext
Executable File

#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
require ts.class pretty_size system.class tdelete
puts "Content-Type: text/html\r\n\r\n"
cgi_input 1
#cgi_dump
set dir [cgi_unquote_input [cgi_get dir]]
#puts "DIR: ($dir)"
if {[system pkginst undelete]} {
set dustbin [system dustbin]
} else {
set dustbin ""
}
proc bindir {file} {
global dustbin
set dir [file dirname $file]
regsub "^[system mediaroot]" $dir $dustbin dir
system mkdir_p $dir
return $dir
}
puts "<div id=deleting class=blood><img src=/img/loading.gif>Deleting...</div>"
puts "<ul style=\"list-style-type: square\">"
foreach file [cgi_get files] {
set file [cgi_unquote_input $file]
puts -nonewline "<li>\"$file\"..."
if {![string match "$dir/*" $file]} {
puts "Error - outside directory."
continue
}
if {[string first $dustbin $file] > -1} {
set ldustbin ""
} else {
set ldustbin $dustbin
}
if {[file isdirectory $file]} {
puts -nonewline "Directory..."
if {$ldustbin ne ""} {
set ndir "[bindir $file]/[file tail $file]"
while {[file isdirectory $ndir]} { append ndir "_" }
file rename $file $ndir
} else {
tdelete $file
}
puts -nonewline "Done..."
} elseif {[string match {*.ts} $file]} {
set ts [ts fetch $file]
if {$ldustbin ne ""} {
$ts move [bindir $file]
} else {
if {[$ts delete]} {
puts "Successfully deleted $file."
} else {
puts "Problem deleting $file, [$ts get error]"
}
}
} else {
if {$ldustbin ne ""} {
file rename $file "[bindir $file]/[file tail $file]"
} else {
tdelete $file
}
catch {file delete "[file rootname $file].hmi"}
puts -nonewline "Done..."
}
puts "</li>"
}
puts "</ul>"