hummypkg 687fc606a1 fix go with trailing /, tweak pkg to sort final list rather than interim, improve maintenance mode wording
git-svn-id: file:///root/webif/svn/pkg/webif/trunk@2624 2a923420-c742-0410-a762-8d5b09965624
2016-02-11 18:30:18 +00:00

92 lines
1.7 KiB
Plaintext
Executable File

#!/mod/bin/jimsh
source /mod/webif/lib/setup
require system.class settings.class plugin
set module [file tail [string trimright $env(PATH_INFO) /]]
set lastmodule ""
if {[dict exists $env HTTP_COOKIE]} {
regexp {webif_lastmod=([a-z_]+)} $env(HTTP_COOKIE) x lastmodule
}
set settings [settings]
if {[$settings epg_style] eq "grid"} {
set epglink "/cgi-bin/xepg.jim"
} else {
set epglink "/epg/list.jim"
}
set pages {
"browse" "/browse/"
"schedule" "/sched/"
"mobile" "/m/"
"service" "/services/"
"pkg" "/pkg/"
"diag" "/diag/diag.jim"
"settings" "/settings/settings.jim"
}
set pages(epg) $epglink
set modules {}
foreach {page link} $pages {
set modules($page) [list $link 50]
set modules(mm_$page) [list $link 50]
}
proc register_module {module url {priority 75}} {
global modules
if {$module ni $modules} {
# New module
set modules($module) [list $url $priority]
return
}
lassign $modules($module) x pri
if {$priority > $pri} {
set modules($module) [list $url $priority]
}
}
proc override_module {module} {
set ::module $module
}
if {$module eq "debug"} {
httpheader
puts "<h3>Parameters</h3>"
puts "<pre>"
puts "MODULE: $module"
puts "LASTMOD: $lastmodule"
puts "</pre>"
puts "<h3>Modules</h3>"
puts "<pre>"
parray modules
puts "</pre>"
}
eval_plugins go 1
if {$module eq "debug"} {
puts "<h3>After plugins</h3>"
puts "<pre>"
parray modules
parray env
puts "</pre>"
exit
}
if {$module ni $modules} {
httpheader
puts "Error, module '$module' not found."
exit
}
lassign $modules($module) url
if [dict exists $env QUERY_STRING] {
append url "?$env(QUERY_STRING)"
}
httpredirect $url "Set-Cookie: webif_lastmod=$module"