Skip to content

Commit d9dcd64

Browse files
authored
Merge pull request #1182 from wickedjargon/master
added straight-x-open-straight-package-readme function
2 parents d157afb + cd6f178 commit d9dcd64

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

straight-x.el

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
;;; Code:
2222

2323
(require 'cl-lib)
24+
(require 'seq)
2425
(require 'subr-x)
2526

2627
(require 'straight)
@@ -208,6 +209,36 @@ those listed."
208209
(straight-freeze-versions)
209210
(straight-x-freeze-pinned-versions))
210211

212+
(defun straight-x-open-straight-package-readme (package-name)
213+
"Open the README file of a straight package in read-only mode."
214+
(interactive
215+
(let* ((repos-dir (expand-file-name "straight/repos/" straight-base-dir))
216+
(package-names
217+
(if (file-directory-p repos-dir)
218+
(cl-remove-if-not
219+
(lambda (dir)
220+
(seq-some
221+
(lambda (file)
222+
(string-match-p "^README\\(?:\\..*\\)?$" file))
223+
(directory-files
224+
(expand-file-name dir repos-dir) nil "^[^.]+")))
225+
(directory-files repos-dir nil "^[^.]+"))
226+
(error "Repositories directory not found: %s" repos-dir))))
227+
(list (completing-read "Enter package name: " package-names nil t))))
228+
(let* ((repo-path (expand-file-name
229+
package-name
230+
(expand-file-name "straight/repos/" straight-base-dir)))
231+
(readme-path (seq-some
232+
(lambda (file)
233+
(when (string-match-p "^README\\(?:\\..*\\)?$" file)
234+
(expand-file-name file repo-path)))
235+
(directory-files repo-path))))
236+
(if readme-path
237+
(let ((buffer (find-file-read-only readme-path)))
238+
(message "Opened %s in read-only mode." readme-path)
239+
buffer)
240+
(message "No README file found for package: %s" package-name))))
241+
211242

212243
(provide 'straight-x)
213244

0 commit comments

Comments
 (0)