 (defun straight-recipes-emacsmirror-list ()
   "Return a list of recipes available in EmacsMirror, as a list of strings."
   (append
-   (directory-files "mirror" nil "^[^.]" 'nosort)
-   (directory-files "attic" nil "^[^.]" 'nosort)))
+   (straight--directory-files "mirror")
+   (straight--directory-files "attic")))
 
 ;;;;; Recipe conversion
 

                   (straight--dir "build" package)))
      (cl-destructuring-bind (repo-file . build-file) spec
        (make-directory (file-name-directory build-file) 'parents)
        (make-symbolic-link repo-file build-file)))))

;;;;; Dependency management


    (dolist (package (hash-table-keys straight--build-cache))
      (unless (gethash package straight--profile-cache)
        (remhash package straight--build-cache)))
    (dolist (package (straight--directory-files
                      (straight--dir "build")))
      ;; So, let me tell you a funny story. Once upon a time I didn't
      ;; have this `string-match-p' condition. But Emacs helpfully
      ;; returns . and .. from the call to `directory-files',
      ;; resulting in the entire build directory and its parent
      ;; directory also being deleted. Fun fun fun. (Now that I've
      ;; replaced `directory-files' with `straight--directory-files',
      ;; . and .. are no longer returned. But it's always good to be
      ;; paranoid with recursive deletes.)
      (unless (or (string-match-p "^\\.\\.?$" package)
                  (gethash package straight--profile-cache))
        (delete-directory (straight--dir "build" package) 'recursive)))))
