5PUTZ65VCZROT54SY5B4SZM47G5C4M5MFTS6NVBLEOXBNU4UXU2QC WOJSXGNI37DLUQASZRNYTKSIDT3MJGHR2BAVCD4362XYFDIVNI3QC RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC EY6TDTQF76OHSGWR572JUJP2DENLLKJ7TWM5VVIBOXWTPJ6B6MMAC NVJWAMWTWQS2QYOD6FBARW7YBPMDWTOAPSPQORXWMWTUTBAAGEUAC M766KWHCSAJZSVDU3T7LJXB6XRSWSHEKT4GMGFR5Y5GPVP2UCWEAC 4262KCJHLNE3XCYS2ABUYK7G25SZ7IKMDGWILUS2CU26GFMECPDQC #+fw.dump(eval-when (:compile-toplevel :load-toplevel :execute)(load "~/quicklisp/setup.lisp")(require :uiop))#+fw.dump(ql:quickload '(:net.didierverna.clon))(defpackage :fwoar.zenburn(:use :cl )(:export dump))(in-package :fwoar.zenburn)(defun 256-color-text (fg bg format &rest args)(cond ((and fg bg)(destructuring-bind (fg-r fg-g fg-b) fg(destructuring-bind (bg-r bg-g bg-b) bg(format T "~c[38;2;~d;~d;~d;48;2;~d;~d;~dm~?~@*~c[39m~:*~c[49m"#\Escfg-r fg-g fg-bbg-r bg-g bg-bformatargs))))(fg(destructuring-bind (fg-r fg-g fg-b) fg(format T "~c[38;2;~d;~d;~dm~?~@*~c[39m~:*~c[49m"#\Escfg-r fg-g fg-bformatargs)))(bg(destructuring-bind (bg-r bg-g bg-b) bg(format T "~c[48;2;~d;~d;~dm~?~@*~c[39m~:*~c[49m"#\Escbg-r bg-g bg-bformatargs)))(t (error "must specify either fg or bg for a color"))))(defparameter color-alist'((fg+2 . (#xFF #xFF #xEF))(fg+1 . (#xF5 #xF5 #xD6))(fg . (#xDC #xDC #xCC))(fg-1 . (#xA6 #xA6 #x89))(fg-2 . (#x65 #x65 #x55))(black . (#x00 #x00 #x00))(bg-2 . (#x00 #x00 #x00))(bg-1 . (#x11 #x11 #x12))(bg-05 . (#x38 #x38 #x38))(bg . (#x2A #x2B #x2E))(bg+05 . (#x49 #x49 #x49))(bg+1 . (#x4F #x4F #x4F))(bg+2 . (#x5F #x5F #x5F))(bg+3 . (#x6F #x6F #x6F))(red+2 . (#xEC #xB3 #xB3))(red+1 . (#xDC #xA3 #xA3))(red . (#xCC #x93 #x93))(red-1 . (#xBC #x83 #x83))(red-2 . (#xAC #x73 #x73))(red-3 . (#x9C #x63 #x63))(red-4 . (#x8C #x53 #x53))(red-5 . (#x7C #x43 #x43))(red-6 . (#x6C #x33 #x33))(orange . (#xDF #xAF #x8F))(yellow . (#xF0 #xDF #xAF))(yellow-1 . (#xE0 #xCF #x9F))(yellow-2 . (#xD0 #xBF #x8F))(green-5 . (#x2F #x4F #x2F))(green-4 . (#x3F #x5F #x3F))(green-3 . (#x4F #x6F #x4F))(green-2 . (#x5F #x7F #x5F))(green-1 . (#x6F #x8F #x6F))(green . (#x7F #x9F #x7F))(green+1 . (#x8F #xB2 #x8F))(green+2 . (#x9F #xC5 #x9F))(green+3 . (#xAF #xD8 #xAF))(green+4 . (#xBF #xEB #xBF))(cyan . (#x93 #xE0 #xE3))(blue+3 . (#xBD #xE0 #xF3))(blue+2 . (#xAC #xE0 #xE3))(blue+1 . (#x94 #xBF #xF3))(blue . (#x8C #xD0 #xD3))(blue-1 . (#x7C #xB8 #xBB))(blue-2 . (#x6C #xA0 #xA3))(blue-3 . (#x5C #x88 #x8B))(blue-4 . (#x4C #x70 #x73))(blue-5 . (#x36 #x60 #x60))(magenta . (#xDC #x8C #xC3))))(defun zenburn-text (fg bg text &rest format-args)(let ((fgcolor (when fg (cdr (assoc fg color-alist :test 'equal))))(bgcolor (when bg (cdr (assoc bg color-alist :test 'equal)))))(apply #'256-color-text fgcolor bgcolor text format-args)))(defun summary ()(loop for (color . values) in color-alistdo(zenburn-text () color (make-string 32 :initial-element #\space))(format t " ~8<~a~> (~{~2x~^, ~}) ~:* (~{~3d~^, ~})~%" color values)))(defvar *synopsis*(net.didierverna.clon:defsynopsis (:postfix "[TEXT...]" :make-default nil)(flag :short-name "h" :long-name "help")(enum :short-name "f" :long-name "fg" :enum (mapcar 'car color-alist):description "Set the text's foreground color")(enum :short-name "b" :long-name "bg" :enum (mapcar 'car color-alist):description "Set the text's background color")(enum :long-name "html" :enum (mapcar 'car color-alist):description "Show COLOR as an HTML RGB literal")(enum :long-name "css" :enum (mapcar 'car color-alist):description "Show COLOR as an CSS RGB literal")))(defun main ()(let* ((context (net.didierverna.clon:make-context :synopsis *synopsis*))(net.didierverna.clon:*context* context)(foreground (net.didierverna.clon:getopt :context context:long-name "fg"))(background (net.didierverna.clon:getopt :context context:long-name "bg"))(remainder (net.didierverna.clon:remainder :context context))(css (net.didierverna.clon:getopt :context context:long-name "css"))(html (net.didierverna.clon:getopt :context context:long-name "html")))(cond ((net.didierverna.clon:getopt :context context:long-name "help")(net.didierverna.clon:help))((and html css)(format *error-output* "Can't use HTML and CSS options together~%")(net.didierverna.clon:help))(css(let ((values (cdr (assoc css color-alist))))(format t "rgb(~{~d~^, ~})~%" values)))(html(let ((values (cdr (assoc html color-alist))))(format t "#~{~2,'0x~}~%" values)))((null remainder)(summary))((or foreground background)(zenburn-text foreground background "~{~a~^ ~}" remainder))(t(net.didierverna.clon:help)))))(defun dump ()(setf net.didierverna.clon:*context* nil*features* (remove :fw.dump *features*)*print-case* :downcase)(net.didierverna.clon:dump "zenburn" main))
/tools/bin/zenburn
#+fw.dump(eval-when (:compile-toplevel :load-toplevel :execute)(load "~/quicklisp/setup.lisp")(require :uiop))#+fw.dump(ql:quickload '(:net.didierverna.clon))(defpackage :fwoar.zenburn(:use :cl )(:export dump))(in-package :fwoar.zenburn)(defun 256-color-text (fg bg format &rest args)(cond ((and fg bg)(destructuring-bind (fg-r fg-g fg-b) fg(destructuring-bind (bg-r bg-g bg-b) bg(format T "~c[38;2;~d;~d;~d;48;2;~d;~d;~dm~?~@*~c[39m~:*~c[49m"#\Escfg-r fg-g fg-bbg-r bg-g bg-bformatargs))))(fg(destructuring-bind (fg-r fg-g fg-b) fg(format T "~c[38;2;~d;~d;~dm~?~@*~c[39m~:*~c[49m"#\Escfg-r fg-g fg-bformatargs)))(bg(destructuring-bind (bg-r bg-g bg-b) bg(format T "~c[48;2;~d;~d;~dm~?~@*~c[39m~:*~c[49m"#\Escbg-r bg-g bg-bformatargs)))(t (error "must specify either fg or bg for a color"))))(defparameter color-alist'((fg+2 . (#xFF #xFF #xEF))(fg+1 . (#xF5 #xF5 #xD6))(fg . (#xDC #xDC #xCC))(fg-1 . (#xA6 #xA6 #x89))(fg-2 . (#x65 #x65 #x55))(black . (#x00 #x00 #x00))(bg-2 . (#x00 #x00 #x00))(bg-1 . (#x11 #x11 #x12))(bg-05 . (#x38 #x38 #x38))(bg . (#x2A #x2B #x2E))(bg+05 . (#x49 #x49 #x49))(bg+1 . (#x4F #x4F #x4F))(bg+2 . (#x5F #x5F #x5F))(bg+3 . (#x6F #x6F #x6F))(red+2 . (#xEC #xB3 #xB3))(red+1 . (#xDC #xA3 #xA3))(red . (#xCC #x93 #x93))(red-1 . (#xBC #x83 #x83))(red-2 . (#xAC #x73 #x73))(red-3 . (#x9C #x63 #x63))(red-4 . (#x8C #x53 #x53))(red-5 . (#x7C #x43 #x43))(red-6 . (#x6C #x33 #x33))(orange . (#xDF #xAF #x8F))(yellow . (#xF0 #xDF #xAF))(yellow-1 . (#xE0 #xCF #x9F))(yellow-2 . (#xD0 #xBF #x8F))(green-5 . (#x2F #x4F #x2F))(green-4 . (#x3F #x5F #x3F))(green-3 . (#x4F #x6F #x4F))(green-2 . (#x5F #x7F #x5F))(green-1 . (#x6F #x8F #x6F))(green . (#x7F #x9F #x7F))(green+1 . (#x8F #xB2 #x8F))(green+2 . (#x9F #xC5 #x9F))(green+3 . (#xAF #xD8 #xAF))(green+4 . (#xBF #xEB #xBF))(cyan . (#x93 #xE0 #xE3))(blue+3 . (#xBD #xE0 #xF3))(blue+2 . (#xAC #xE0 #xE3))(blue+1 . (#x94 #xBF #xF3))(blue . (#x8C #xD0 #xD3))(blue-1 . (#x7C #xB8 #xBB))(blue-2 . (#x6C #xA0 #xA3))(blue-3 . (#x5C #x88 #x8B))(blue-4 . (#x4C #x70 #x73))(blue-5 . (#x36 #x60 #x60))(magenta . (#xDC #x8C #xC3))))(defun zenburn-text (fg bg text &rest format-args)(let ((fgcolor (when fg (cdr (assoc fg color-alist :test 'equal))))(bgcolor (when bg (cdr (assoc bg color-alist :test 'equal)))))(apply #'256-color-text fgcolor bgcolor text format-args)))(defun summary ()(loop for (color . values) in color-alistdo(zenburn-text () color (make-string 32 :initial-element #\space))(format t " ~8<~a~> (~{~2x~^, ~}) ~:* (~{~3d~^, ~})~%" color values)))(defvar *synopsis*(net.didierverna.clon:defsynopsis (:postfix "[TEXT...]" :make-default nil)(flag :short-name "h" :long-name "help")(enum :short-name "f" :long-name "fg" :enum (mapcar 'car color-alist):description "Set the text's foreground color")(enum :short-name "b" :long-name "bg" :enum (mapcar 'car color-alist):description "Set the text's background color")(enum :long-name "html" :enum (mapcar 'car color-alist):description "Show COLOR as an HTML RGB literal")(enum :long-name "css" :enum (mapcar 'car color-alist):description "Show COLOR as an CSS RGB literal")))(defun main ()(let* ((context (net.didierverna.clon:make-context :synopsis *synopsis*))(net.didierverna.clon:*context* context)(foreground (net.didierverna.clon:getopt :context context:long-name "fg"))(background (net.didierverna.clon:getopt :context context:long-name "bg"))(remainder (net.didierverna.clon:remainder :context context))(css (net.didierverna.clon:getopt :context context:long-name "css"))(html (net.didierverna.clon:getopt :context context:long-name "html")))(cond ((net.didierverna.clon:getopt :context context:long-name "help")(net.didierverna.clon:help))((and html css)(format *error-output* "Can't use HTML and CSS options together~%")(net.didierverna.clon:help))(css(let ((values (cdr (assoc css color-alist))))(format t "rgb(~{~d~^, ~})~%" values)))(html(let ((values (cdr (assoc html color-alist))))(format t "#~{~2,'0x~}~%" values)))((null remainder)(summary))((or foreground background)(zenburn-text foreground background "~{~a~^ ~}" remainder))(t(net.didierverna.clon:help)))))(defun dump ()(setf net.didierverna.clon:*context* nil*features* (remove :fw.dump *features*)*print-case* :downcase)(net.didierverna.clon:dump "zenburn" main))