Date: Sat, 2 Aug 2014 13:39:03 -0300 From: Pedro Arthur <bygrandao@gmail.com> To: "Wojciech A. Koszek" <wkoszek@freebsd.org> Cc: svn-soc-all@freebsd.org, pedrosouza@freebsd.org Subject: Re: socsvn commit: r271623 - soc2014/pedrosouza/lua_loader/head/sys/boot/lua Message-ID: <CAKN1MR63qYVZxKGv%2BkG_J4wtwHaHKhdAOGv2iqUSy6R2EGdv_g@mail.gmail.com> In-Reply-To: <20140802053708.GB98217@FreeBSD.org> References: <201407301950.s6UJovS1023444@socsvn.freebsd.org> <20140802053708.GB98217@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for the tips, I'll start checking the password code to not be bypassed. 2014-08-02 2:37 GMT-03:00 Wojciech A. Koszek <wkoszek@freebsd.org>: > On Wed, Jul 30, 2014 at 07:50:57PM +0000, pedrosouza@freebsd.org wrote: > > Author: pedrosouza > > Date: Wed Jul 30 19:50:56 2014 > > New Revision: 271623 > > URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=271623 > > > > Log: > > Added boot menu shortcuts > > > > Pedro, > > I walked through all your last commits. > > All your work looks pretty good. I don't see anything fundamentally wrong > in > code your wrote. If I were to give feedback, in the order of priority: > > The most crucial part would be to make sure password checking can't be > ommited. Thus we should try to do rigorous testing there. We should also > check if by doing strange things we can crash the Lua in a way that would > skip password checking. Make sure we catch all exceptions and error > conditions there. > > To make this code easily mergable, we should probably target > src/sys/lua/. This way you can make 'lua*' utilities available to > users. Alternatively: src/sys/contrib/lua/. > > It should be plain Lua source code, so that upgrading to new Luas as they > get released would be as simple as unpacking the .tar.bz2 there. The > FreeBSD > wrapper for Lua loader could live in src/sys/boot/lua. > > Think whether you also feel 80x25 rule for Lua code should be preserved. At > some point we could also start lua.style.8 man page. > > Thanks for all this work. It's nice to see coming nicely along. > > Wojciech > > > Modified: > > soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua > > soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua > > > > Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua > > > ============================================================================== > > --- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua Wed Jul 30 > 18:47:31 2014 (r271622) > > +++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua Wed Jul 30 > 19:50:56 2014 (r271623) > > @@ -8,13 +8,16 @@ > > screen.setcursor(x, y); > > print("Boot Menu"); > > for k, v in pairs(opts) do > > - screen.setcursor(x, y + v.index); > > - local name = v.name; > > - > > - if (name == nil) then > > - name = v.getName(); > > + -- skip alias > > + if k ~= "alias" then > > + screen.setcursor(x, y + v.index); > > + local name = v.name; > > + > > + if (name == nil) then > > + name = v.getName(); > > + end > > + print(k .. " - " .. name); > > end > > - print(k .. " - " .. name); > > end > > end > > > > @@ -29,6 +32,7 @@ > > menu.drawbox(4, 10, 40, 10); > > drawer.drawbrand(); > > drawer.drawlogo(); > > + screen.defcursor(); > > local ch = string.char(io.getchar()); > > if (opts[ch] ~= nil) then > > local ret = opts[ch].func(); > > @@ -36,6 +40,17 @@ > > print("Exiting menu!\n"); > > return; > > end > > + else > > + --try alias key > > + if opts.alias ~= nil then > > + if opts.alias[ch] ~= nil then > > + local ret = opts.alias[ch].func(); > > + if (ret) then > > + print("Exiting menu!\n"); > > + return; > > + end > > + end > > + end > > end > > end > > end > > @@ -65,26 +80,39 @@ > > end > > > > menu.options = { > > - ["1"] = {index = 1, name = "Boot Multi user", func = function > () core.setSingleUser(false); loader.perform("boot"); end}, > > - ["2"] = {index = 2, name = "Boot Single user", func = function > () core.setSingleUser(true); loader.perform("boot"); end}, > > - ["3"] = {index = 3, name = "Escape to lua interpreter", func = > function () return true; end}, > > - ["4"] = {index = 4, name = "Reboot", func = function > () loader.perform("reboot"); end}, > > - ["5"] = {index = 5, name = "Boot Options", func = function > () menu.run(boot_options); return false; end} > > + -- Boot multi user > > + ["1"] = {index = 1, name = color.highlight("B").."oot Multi user", > func = function () core.setSingleUser(false); loader.perform("boot"); end}, > > + -- boot single user > > + ["2"] = {index = 2, name = "Boot "..color.highlight("S").."ingle > user", func = function () core.setSingleUser(true); > loader.perform("boot"); end}, > > + -- escape to interpreter > > + ["3"] = {index = 3, name = color.highlight("E").."scape to lua > interpreter", func = function () return true; end}, > > + -- reboot > > + ["4"] = {index = 4, name = color.highlight("R").."eboot", func = > function () loader.perform("reboot"); end}, > > + -- boot options > > + ["5"] = {index = 5, name = "Boot "..color.highlight("O").."ptions", > func = function () menu.run(boot_options); return false; end} > > +}; > > + > > +menu.options.alias = { > > + ["b"] = menu.options["1"], > > + ["s"] = menu.options["2"], > > + ["e"] = menu.options["3"], > > + ["r"] = menu.options["4"], > > + ["o"] = menu.options["5"] > > }; > > > > function OnOff(str, b) > > if (b) then > > - return str .. color.escapef(color.GREEN)..": > On"..color.escapef(color.WHITE); > > + return str .. > color.escapef(color.GREEN).."On"..color.escapef(color.WHITE); > > else > > - return str .. color.escapef(color.RED)..": > Off"..color.escapef(color.WHITE); > > + return str .. > color.escapef(color.RED).."Off"..color.escapef(color.WHITE); > > end > > end > > > > boot_options = { > > ["1"] = {index = 1, name = "Back to menu", func = function () > return true; end }, > > ["2"] = {index = 2, name = "Load System defaults", func = function > () core.setDefaults(); return false; end }, > > - ["3"] = {index = 3, getName = function () return OnOff("ACPI > ", core.acpi); end, func = function () core.setACPI(); return false; end }, > > - ["4"] = {index = 4, getName = function () return OnOff("Safe Mode > ", core.sm); end, func = function () core.setSafeMode(); return false; > end }, > > - ["5"] = {index = 5, getName = function () return OnOff("Single > user", core.su); end, func = function () core.setSingleUser(); return > false; end }, > > - ["6"] = {index = 6, getName = function () return OnOff("Verbose > ", core.verbose); end, func = function () core.setVerbose(); return false; > end } > > + ["3"] = {index = 3, getName = function () return OnOff("ACPI > :", core.acpi); end, func = function () core.setACPI(); return false; end }, > > + ["4"] = {index = 4, getName = function () return OnOff("Safe Mode > :", core.sm); end, func = function () core.setSafeMode(); return > false; end }, > > + ["5"] = {index = 5, getName = function () return OnOff("Single > user:", core.su); end, func = function () core.setSingleUser(); return > false; end }, > > + ["6"] = {index = 6, getName = function () return OnOff("Verbose > :", core.verbose); end, func = function () core.setVerbose(); return > false; end } > > } > > \ No newline at end of file > > > > Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua > > > ============================================================================== > > --- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua > Wed Jul 30 18:47:31 2014 (r271622) > > +++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua > Wed Jul 30 19:50:56 2014 (r271623) > > @@ -32,6 +32,10 @@ > > return "\027[0;37;40m"; > > end > > > > +function color.highlight(str) > > + return "\027[1m"..str.."\027[0m"; > > +end > > + > > function screen.clear() > > print("\027[H\027[J"); > > end > > @@ -53,5 +57,5 @@ > > end > > > > function screen.defcursor() > > - print("\027[24;0H"); > > + print("\027[25;0H"); > > end > > \ No newline at end of file > > _______________________________________________ > > svn-soc-all@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/svn-soc-all > > To unsubscribe, send any mail to "svn-soc-all-unsubscribe@freebsd.org" > > -- > Wojciech A. Koszek > wkoszek@FreeBSD.czest.pl > http://FreeBSD.czest.pl/~wkoszek/ >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAKN1MR63qYVZxKGv%2BkG_J4wtwHaHKhdAOGv2iqUSy6R2EGdv_g>