(defun recompile-stale-elcs ()
  (interactive)

  (with-temp-buffer
    (setq-local default-directory user-emacs-directory)

    (let ((find-command (find-cmd '(prune (name ".git"))
                                  '(name "*.elc"))))

      (shell-command find-command t t))

    (goto-char (point-min))

    (setq more-lines t)

    (while more-lines
      (let ((start (progn (beginning-of-line)
                          (point)))
            (end (progn (end-of-line)
                        (point))))
        (let ((el (buffer-substring start (- end 1)))
              (elc (buffer-substring start end)))

          (if (file-newer-than-file-p el elc)
              (byte-compile-file (buffer-substring start (- end 1))))))
      (setq more-lines (= 0 (forward-line 1))))))