|
17 | 17 | (require 'json)
|
18 | 18 |
|
19 | 19 | ;;;###autoload
|
20 |
| -(defun nix-search--search (search file &optional no-cache) |
| 20 | +(defun nix-search--search (search file &optional no-cache use-flakes) |
21 | 21 | (with-temp-buffer
|
22 |
| - (call-process nix-executable nil (list t nil) nil |
23 |
| - "search" "--json" (if no-cache "--no-cache" "") "--file" file search) |
| 22 | + (if use-flakes |
| 23 | + (call-process nix-executable nil (list t nil) nil |
| 24 | + "search" "--json" file (if (string= search "") "." search)) |
| 25 | + (call-process nix-executable nil (list t nil) nil |
| 26 | + "search" "--json" (if no-cache "--no-cache" "") "--file" file search)) |
24 | 27 | (goto-char (point-min))
|
25 | 28 | (json-read)))
|
26 | 29 |
|
27 | 30 | ;;;###autoload
|
28 |
| -(defun nix-search--display (results &optional display-buffer) |
| 31 | +(defun nix-search--display (results &optional display-buffer use-flakes) |
29 | 32 | (unless display-buffer (setq display-buffer (generate-new-buffer "*nix search*")))
|
30 | 33 | (with-current-buffer display-buffer
|
31 | 34 | (dolist (entry results)
|
32 | 35 | (widget-insert
|
33 |
| - (format "attr: %s\nname: %s\nversion: %s\ndescription: %s\n\n" |
34 |
| - (car entry) |
35 |
| - (alist-get 'pkgName (cdr entry)) |
36 |
| - (alist-get 'version (cdr entry)) |
37 |
| - (alist-get 'description (cdr entry)))))) |
| 36 | + (format "attr: %s\nname: %s\nversion: %s\ndescription: %s\n\n" |
| 37 | + (car entry) |
| 38 | + (if use-flakes |
| 39 | + (alist-get 'pname (cdr entry)) |
| 40 | + (alist-get 'pkgName (cdr entry))) |
| 41 | + (alist-get 'version (cdr entry)) |
| 42 | + (alist-get 'description (cdr entry)))))) |
38 | 43 | (display-buffer display-buffer))
|
39 | 44 |
|
40 | 45 | ;;;###autoload
|
|
43 | 48 | SEARCH a search term to use.
|
44 | 49 | FILE a Nix expression to search in."
|
45 | 50 | (interactive "snix-search> \n")
|
46 |
| - (setq file (or file (nix-read-file))) |
47 |
| - (let ((results (nix-search--search search file))) |
| 51 | + (setq use-flakes (nix-has-flakes)) |
| 52 | + (setq file (or file (if use-flakes (nix-read-flake) (nix-read-file)))) |
| 53 | + (let ((results (nix-search--search search file nil use-flakes))) |
48 | 54 | (when (called-interactively-p 'any)
|
49 |
| - (nix-search--display results)) |
| 55 | + (nix-search--display results nil use-flakes)) |
50 | 56 | results))
|
51 | 57 |
|
52 | 58 | (defun nix-search-read-attr (file)
|
|
0 commit comments