Redesign doom/info
+ Focus on the important information and cut down on excess. + Prompt the user to open pastebin.com after copying doom-info to clipboard. + Include timestamp in doom-info.
This commit is contained in:
parent
302a76a06e
commit
4192d87dcd
1 changed files with 79 additions and 80 deletions
|
@ -120,21 +120,26 @@ ready to be pasted in a bug report on github."
|
|||
(regexp-opt (list (user-login-name)) 'words) "$USER"
|
||||
(abbreviate-file-name path)))
|
||||
(defun symlink-path (file)
|
||||
(format "%s%s" (abbrev-path file)
|
||||
(if (file-symlink-p file)
|
||||
(concat " -> " (file-truename file))
|
||||
""))))
|
||||
`((system
|
||||
(info . ,(cons (doom-system-distro-version) (sh "uname" "-msr")))
|
||||
(shell . ,(abbrev-path shell-file-name))
|
||||
(path . ,(mapcar #'abbrev-path exec-path)))
|
||||
(emacs
|
||||
(dir . ,(symlink-path doom-emacs-dir))
|
||||
(version . ,(delq nil (list emacs-version emacs-repository-version (format-time-string "%b %d, %Y" emacs-build-time))))
|
||||
(buildopts . ,system-configuration-options)
|
||||
(features . ,system-configuration-features)
|
||||
(traits
|
||||
. ,(delq
|
||||
(let ((truefile (file-truename file)))
|
||||
(format "%s%s" (abbrev-path file)
|
||||
(if (equal file truefile) ""
|
||||
(concat " -> " (abbrev-path truefile)))))))
|
||||
`((generated . ,(format-time-string "%b %d, %Y %H:%M:%S"))
|
||||
(distro . ,(list (doom-system-distro-version) (sh "uname" "-msr")))
|
||||
(emacs . ,(delq
|
||||
nil (list emacs-version
|
||||
emacs-repository-branch
|
||||
(substring (or emacs-repository-version "") 0 9)
|
||||
(symlink-path doom-emacs-dir))))
|
||||
(doom . ,(list doom-version
|
||||
(sh "git" "log" "-1" "--format=%D %h %ci")
|
||||
(symlink-path doom-private-dir)))
|
||||
(shell . ,(abbrev-path shell-file-name))
|
||||
(features . ,system-configuration-features)
|
||||
(traits
|
||||
. ,(mapcar
|
||||
#'symbol-name
|
||||
(delq
|
||||
nil (list (cond ((not doom-interactive-p) 'batch)
|
||||
((display-graphic-p) 'gui)
|
||||
('tty))
|
||||
|
@ -157,58 +162,51 @@ ready to be pasted in a bug report on github."
|
|||
,doom-private-dir)
|
||||
:type 'files :match "\\.elc$")
|
||||
'byte-compiled-config)))))
|
||||
(doom
|
||||
(dir . ,(symlink-path doom-private-dir))
|
||||
(version . ,(list doom-version (sh "git" "log" "-1" "--format=%D %h %ci")))
|
||||
,@(when doom-interactive-p
|
||||
`((font . ,(bound-and-true-p doom-font))
|
||||
(theme . ,(bound-and-true-p doom-theme))))
|
||||
(modules
|
||||
,@(or (cl-loop with cat = nil
|
||||
for key being the hash-keys of doom-modules
|
||||
if (or (not cat)
|
||||
(not (eq cat (car key))))
|
||||
do (setq cat (car key))
|
||||
and collect cat
|
||||
collect
|
||||
(let* ((flags (doom-module-get cat (cdr key) :flags))
|
||||
(path (doom-module-get cat (cdr key) :path))
|
||||
(module (append (cond ((null path)
|
||||
(list '&nopath))
|
||||
((file-in-directory-p path doom-private-dir)
|
||||
(list '&user)))
|
||||
(if flags
|
||||
`(,(cdr key) ,@flags)
|
||||
(list (cdr key))))))
|
||||
(if (= (length module) 1)
|
||||
(car module)
|
||||
module)))
|
||||
'("n/a")))
|
||||
(packages
|
||||
,@(or (condition-case e
|
||||
(mapcar
|
||||
#'cdr (doom--collect-forms-in
|
||||
(doom-path doom-private-dir "packages.el")
|
||||
"package!"))
|
||||
(error (format "<%S>" e)))
|
||||
'("n/a")))
|
||||
(unpin
|
||||
,@(or (condition-case e
|
||||
(mapcan #'identity
|
||||
(mapcar
|
||||
#'cdr (doom--collect-forms-in
|
||||
(doom-path doom-private-dir "packages.el")
|
||||
"unpin!")))
|
||||
(error (format "<%S>" e)))
|
||||
'("n/a")))
|
||||
(elpa
|
||||
,@(or (condition-case e
|
||||
(progn
|
||||
(package-initialize)
|
||||
(cl-loop for (name . _) in package-alist
|
||||
collect (format "%s" name)))
|
||||
(error (format "<%S>" e)))
|
||||
'("n/a"))))))))
|
||||
(modules
|
||||
,@(or (cl-loop with cat = nil
|
||||
for key being the hash-keys of doom-modules
|
||||
if (or (not cat)
|
||||
(not (eq cat (car key))))
|
||||
do (setq cat (car key))
|
||||
and collect cat
|
||||
collect
|
||||
(let* ((flags (doom-module-get cat (cdr key) :flags))
|
||||
(path (doom-module-get cat (cdr key) :path))
|
||||
(module (append (cond ((null path)
|
||||
(list '&nopath))
|
||||
((file-in-directory-p path doom-private-dir)
|
||||
(list '&user)))
|
||||
(if flags
|
||||
`(,(cdr key) ,@flags)
|
||||
(list (cdr key))))))
|
||||
(if (= (length module) 1)
|
||||
(car module)
|
||||
module)))
|
||||
'("n/a")))
|
||||
(packages
|
||||
,@(or (condition-case e
|
||||
(mapcar
|
||||
#'cdr (doom--collect-forms-in
|
||||
(doom-path doom-private-dir "packages.el")
|
||||
"package!"))
|
||||
(error (format "<%S>" e)))
|
||||
'("n/a")))
|
||||
,@(when-let (unpins (condition-case e
|
||||
(mapcan #'identity
|
||||
(mapcar
|
||||
#'cdr (doom--collect-forms-in
|
||||
(doom-path doom-private-dir "packages.el")
|
||||
"unpin!")))
|
||||
(error (format "<%S>" e))))
|
||||
(cons 'unpin unpins))
|
||||
(elpa
|
||||
,@(or (condition-case e
|
||||
(progn
|
||||
(package-initialize)
|
||||
(cl-loop for (name . _) in package-alist
|
||||
collect (format "%s" name)))
|
||||
(error (format "<%S>" e)))
|
||||
'("n/a")))))))
|
||||
|
||||
|
||||
;;
|
||||
|
@ -246,21 +244,22 @@ copies it to your clipboard, ready to be pasted into bug reports!"
|
|||
(let ((sexp (prin1-to-string (sexp-at-point))))
|
||||
(delete-region beg end)
|
||||
(insert sexp))))))
|
||||
(insert "```\n")
|
||||
(dolist (group info)
|
||||
(insert! "%-8s%-10s %s\n"
|
||||
((upcase (symbol-name (car group)))
|
||||
(caadr group)
|
||||
(cdadr group)))
|
||||
(dolist (spec (cddr group))
|
||||
(insert! (indent 8 "%-10s %s\n")
|
||||
((car spec) (cdr spec)))))
|
||||
(insert "```\n"))
|
||||
(dolist (spec info)
|
||||
(insert! "%11s %s\n"
|
||||
((car spec)
|
||||
(if (listp (cdr spec))
|
||||
(mapconcat (lambda (x) (format "%s" x))
|
||||
(cdr spec) " ")
|
||||
(cdr spec))))))
|
||||
(if (not doom-interactive-p)
|
||||
(print! (buffer-string))
|
||||
(pop-to-buffer buffer)
|
||||
(kill-new (buffer-string))
|
||||
(print! (green "Copied your doom info to clipboard"))))))
|
||||
(with-current-buffer (pop-to-buffer buffer)
|
||||
(setq buffer-read-only t)
|
||||
(goto-char (point-min))
|
||||
(kill-new (buffer-string))
|
||||
(when (y-or-n-p "Your doom-info was copied to the clipboard.\n\nOpen pastebin.com?")
|
||||
(browse-url "https://pastebin.com")))))))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/am-i-secure ()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue