2015-01-16 22:38:38 +00:00
-- Copyright 2008 Steven Barth <steven@midlink.org>
2015-01-16 22:46:42 +00:00
-- Copyright 2010-2012 Jo-Philipp Wich <jow@openwrt.org>
2015-01-16 22:38:38 +00:00
-- Copyright 2010 Manuel Munz <freifunk at somakoma dot de>
-- Licensed to the public under the Apache License 2.0.
2011-05-04 21:37:41 +00:00
2015-01-15 14:37:46 +00:00
local fs = require " nixio.fs "
local sys = require " luci.sys "
2011-05-04 21:37:41 +00:00
local inits = { }
2015-01-15 14:37:46 +00:00
for _ , name in ipairs ( sys.init . names ( ) ) do
local index = sys.init . index ( name )
local enabled = sys.init . enabled ( name )
2011-05-04 21:37:41 +00:00
2012-05-06 09:48:06 +00:00
if index < 255 then
inits [ " %02i.%s " % { index , name } ] = {
name = name ,
index = tostring ( index ) ,
enabled = enabled
}
end
2011-05-04 21:37:41 +00:00
end
2013-02-26 18:50:36 +00:00
m = SimpleForm ( " initmgr " , translate ( " Initscripts " ) , translate ( " You can enable or disable installed init scripts here. Changes will applied after a device reboot.<br /><strong>Warning: If you disable essential init scripts like \" network \" , your device might become inaccessible!</strong> " ) )
2011-05-04 21:37:41 +00:00
m.reset = false
m.submit = false
s = m : section ( Table , inits )
i = s : option ( DummyValue , " index " , translate ( " Start priority " ) )
n = s : option ( DummyValue , " name " , translate ( " Initscript " ) )
e = s : option ( Button , " endisable " , translate ( " Enable/Disable " ) )
e.render = function ( self , section , scope )
if inits [ section ] . enabled then
self.title = translate ( " Enabled " )
self.inputstyle = " save "
else
self.title = translate ( " Disabled " )
self.inputstyle = " reset "
end
Button.render ( self , section , scope )
end
e.write = function ( self , section )
if inits [ section ] . enabled then
inits [ section ] . enabled = false
2015-01-15 14:37:46 +00:00
return sys.init . disable ( inits [ section ] . name )
2011-05-04 21:37:41 +00:00
else
inits [ section ] . enabled = true
2015-01-15 14:37:46 +00:00
return sys.init . enable ( inits [ section ] . name )
2011-05-04 21:37:41 +00:00
end
end
start = s : option ( Button , " start " , translate ( " Start " ) )
start.inputstyle = " apply "
start.write = function ( self , section )
2015-01-15 14:37:46 +00:00
sys.call ( " /etc/init.d/%s %s >/dev/null " % { inits [ section ] . name , self.option } )
2011-05-04 21:37:41 +00:00
end
restart = s : option ( Button , " restart " , translate ( " Restart " ) )
restart.inputstyle = " reload "
restart.write = start.write
stop = s : option ( Button , " stop " , translate ( " Stop " ) )
stop.inputstyle = " remove "
stop.write = start.write
f = SimpleForm ( " rc " , translate ( " Local Startup " ) ,
translate ( " This is the content of /etc/rc.local. Insert your own commands here (in front of 'exit 0') to execute them at the end of the boot process. " ) )
t = f : field ( TextValue , " rcs " )
t.rmempty = true
t.rows = 20
function t . cfgvalue ( )
2015-01-15 14:37:46 +00:00
return fs.readfile ( " /etc/rc.local " ) or " "
2011-05-04 21:37:41 +00:00
end
function f . handle ( self , state , data )
if state == FORM_VALID then
if data.rcs then
2015-01-15 14:37:46 +00:00
fs.writefile ( " /etc/rc.local " , data.rcs : gsub ( " \r \n " , " \n " ) )
2011-05-04 21:37:41 +00:00
end
end
return true
end
return m , f