From owner-svn-soc-all@FreeBSD.ORG Tue Jul 29 20:10:11 2014 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 28F3091A for ; Tue, 29 Jul 2014 20:10:11 +0000 (UTC) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 152402F1C for ; Tue, 29 Jul 2014 20:10:11 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.9/8.14.9) with ESMTP id s6TKAAfX031455 for ; Tue, 29 Jul 2014 20:10:10 GMT (envelope-from pedrosouza@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.9/8.14.9/Submit) id s6TKAA2q031451 for svn-soc-all@FreeBSD.org; Tue, 29 Jul 2014 20:10:10 GMT (envelope-from pedrosouza@FreeBSD.org) Date: Tue, 29 Jul 2014 20:10:10 GMT Message-Id: <201407292010.s6TKAA2q031451@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to pedrosouza@FreeBSD.org using -f From: pedrosouza@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r271551 - soc2014/pedrosouza/lua_loader/head/sys/boot/lua MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jul 2014 20:10:11 -0000 Author: pedrosouza Date: Tue Jul 29 20:10:09 2014 New Revision: 271551 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=271551 Log: Added brand & logo drawing to boot menu 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 Tue Jul 29 19:49:38 2014 (r271550) +++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua Tue Jul 29 20:10:09 2014 (r271551) @@ -1,5 +1,6 @@ include("/boot/core.lua"); include("/boot/screen.lua"); +include("/boot/drawer.lua"); menu = {}; @@ -26,6 +27,8 @@ screen.clear(); menu.draw(6, 11, opts); menu.drawbox(4, 10, 40, 10); + drawer.drawbrand(); + drawer.drawlogo(); local ch = string.char(io.getchar()); if (opts[ch] ~= nil) then local ret = opts[ch].func(); @@ -66,15 +69,14 @@ ["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} , - ["6"] = {index = 6, name = "Load zfs", func = function () loader.perform("load zfs"); return false; end} + ["5"] = {index = 5, name = "Boot Options", func = function () menu.run(boot_options); return false; end} }; function OnOff(str, b) if (b) then - return str .. ": On"; + return str .. color.escapef(color.GREEN)..": On"..color.escapef(color.WHITE); else - return str .. ": Off"; + return str .. color.escapef(color.RED)..": Off"..color.escapef(color.WHITE); end end Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua ============================================================================== --- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua Tue Jul 29 19:49:38 2014 (r271550) +++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua Tue Jul 29 20:10:09 2014 (r271551) @@ -1,4 +1,36 @@ screen = {}; +color = {}; + +color.BLACK = 0; +color.RED = 1; +color.GREEN = 2; +color.YELLOW = 3; +color.BLUE = 4; +color.MAGENTA = 5; +color.CYAN = 6; +color.WHITE = 7; + +color.DEFAULT = 0; +color.BRIGHT = 1; +color.DIM = 2; + + +function color.escapef(c) + return "\027[3"..c.."m"; +end + +function color.escapeb(c) + return "\027[4"..c.."m"; +end + +function color.escape(fg, bg, att) + if not att then att = "" else att = att..";"; end + return "\027["..att.."3"..fg..";4"..bg.."m"; +end + +function color.default() + return "\027[0;37;40m"; +end function screen.clear() print("\027[H\027[J"); @@ -14,4 +46,12 @@ function screen.setbackground(c) print("\027[4"..c.."m"); +end + +function screen.defcolor() + print(color.default()); +end + +function screen.defcursor() + print("\027[24;0H"); end \ No newline at end of file