From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sahitihi Subject: Re: Patch file for colorize module Date: Sun, 27 May 2018 00:08:07 +0530 Message-ID: <929437a3-bd56-9098-2577-c69f69b01a28@swecha.net> References: <8ea5d026-fab9-7b12-198e-610ad7743cb2@swecha.net> <87r2nvjte6.fsf@elephly.net> <5ab51417-b635-9725-9f48-3bc3f9b61fdf@swecha.net> <87tvsko2wd.fsf@elephly.net> <7290013c-990d-3f7d-d8db-38e090ed766a@swecha.net> <87zi28kt82.fsf@elephly.net> <8573e97d-d107-cde6-cd17-35f4ef6d2de3@swecha.net> <87k1takumm.fsf@elephly.net> <87o9hycwl6.fsf@elephly.net> <87r2mhdeap.fsf@elephly.net> <618c131c-6ba6-e525-aefc-72acca1c910f@swecha.net> <87a7suwtp7.fsf@elephly.net> <149bfb8c-22b5-797d-e88a-ca4077b0a4cc@swecha.net> <87d0xmok8e.fsf@elephly.net> <87k1rsb9ex.fsf@elephly.net> <3e099b0b-e3ec-2bbb-6d10-5b7e48c4dff6@swecha.net> <300fd917-6742-3ef1-044d-4b0f38a44250@swecha.net> <87a7sm4v5j.fsf@elephly.net> <3d5eca09-7730-bd38-265b-7942d0ea16ed@swecha.net> <878t864i59.fsf@elephly.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------7A59E2B6411A467A9BCF5632" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33698) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMe54-000550-9M for guix-devel@gnu.org; Sat, 26 May 2018 14:38:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMe51-0002DU-1L for guix-devel@gnu.org; Sat, 26 May 2018 14:38:18 -0400 In-Reply-To: Content-Language: en-US List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ricardo Wurmus Cc: guix-devel@gnu.org This is a multi-part message in MIME format. --------------7A59E2B6411A467A9BCF5632 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit I went wrong in squashing. Please check the current attachment. > Hi Ricardo, > >> I’d be happy if you could make these changes quickly and send an updated >> patch. Once I receive it I’ll push it to a branch “wip-sahithi” in the >> repository. >> > I have made the above changes. Please notify if i have to make further > changes. > > I mean while, I will be trying out using soft-ports. > > Thanks > > ---- > Sahithi --------------7A59E2B6411A467A9BCF5632 Content-Type: text/x-patch; name="0001-ui-Add-support-for-colorization.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0001-ui-Add-support-for-colorization.patch" >From f3411809f4c9d8e07abf76c08f65e9384405f7d7 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 26 May 2018 17:34:23 +0530 Subject: [PATCH] ui: Add support for colorization. * guix/ui.scm (ansi-color-tables): New variable. (color, colorize-string): New procedures. --- guix/ui.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 8d351607d..efbcbc88b 100755 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -9,7 +9,9 @@ ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Benz Schenk -;;; +;;; Copyright © 2013, 2014 Free Software Foundation, Inc. +;;; Copyright © 2018 Sahithi Yarlagadda +;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it @@ -106,7 +108,8 @@ guix-warning-port warning info - guix-main)) + guix-main + colorize-string)) ;;; Commentary: ;;; @@ -1578,4 +1581,55 @@ and signal handling has already been set up." (initialize-guix) (apply run-guix args)) +(define color-table + `((CLEAR . "0") + (RESET . "0") + (BOLD . "1") + (DARK . "2") + (UNDERLINE . "4") + (UNDERSCORE . "4") + (BLINK . "5") + (REVERSE . "6") + (CONCEALED . "8") + (BLACK . "30") + (RED . "31") + (GREEN . "32") + (YELLOW . "33") + (BLUE . "34") + (MAGENTA . "35") + (CYAN . "36") + (WHITE . "37") + (ON-BLACK . "40") + (ON-RED . "41") + (ON-GREEN . "42") + (ON-YELLOW . "43") + (ON-BLUE . "44") + (ON-MAGENTA . "45") + (ON-CYAN . "46") + (ON-WHITE . "47"))) + +(define (color . lst) + "Returns a string containing the ANSI escape sequence for +producing the requested set of attributes. Unknown attributes are ignored." + (let ((color-list + (remove not + (map (lambda (color) (assq-ref color-table color)) + lst)))) + (if (null? color-list) + "" + (string-append + (string #\esc #\[) + (string-join color-list ";" 'infix) + "m")))) + +(define (colorize-string str . color-list) + (string-append + (apply color color-list) + str + (color 'RESET))) + "Returns a copy of @var{str} colorized using ANSI +escape sequences according to the attributes. At the end of the returned string, the color +attributes will be reset such that subsequent output will not +have any colors in effect." + ;;; ui.scm ends here -- 2.11.0 --------------7A59E2B6411A467A9BCF5632--