|
| 1 | +;; -*- lexical-binding: t; -*- |
1 | 2 | ;;; conda.el --- Work with your conda environments
|
2 | 3 |
|
3 | 4 | ;; Copyright (C) 2016-2024 Rami Chowdhury
|
@@ -705,6 +706,15 @@ environment YAML file or similar at the project level."
|
705 | 706 | (if conda-message-on-environment-switch
|
706 | 707 | (message "No Conda environment found for <%s>" (buffer-file-name))))))
|
707 | 708 |
|
| 709 | +(defun conda--env-process-exit-message (op env-name &optional callback) |
| 710 | + ;; capture dynamically scoped closures |
| 711 | + (lambda (proc _event) |
| 712 | + (when (memq (process-status proc) '(exit signal)) |
| 713 | + (if (zerop (process-exit-status proc)) |
| 714 | + (message "Finished %s Conda environment <%s>" op env-name) |
| 715 | + (message "Error while %s Conda environment <%s>" op env-name))) |
| 716 | + (when callback (funcall callback proc _event)))) |
| 717 | + |
708 | 718 | ;;;###autoload
|
709 | 719 | (defun conda-env-yaml-process-for-buffer (&optional remove env-file)
|
710 | 720 | "Operate on conda environment defined by ENV-FILE, a YAML file.
|
@@ -746,6 +756,12 @@ or reports an error otherwise."
|
746 | 756 | (conda--get-executable-path) nil "env" (cdr params)))))
|
747 | 757 | (when term-buffer
|
748 | 758 | (message "%s Conda environment <%s>" (car params) env-name)
|
| 759 | + (let* ((proc (get-buffer-process term-buffer)) |
| 760 | + (current-sentinel (process-sentinel proc))) |
| 761 | + (set-process-sentinel proc |
| 762 | + (conda--env-process-exit-message |
| 763 | + (downcase (car params)) env-name |
| 764 | + current-sentinel))) |
749 | 765 | (with-current-buffer term-buffer
|
750 | 766 | (unless (term-check-proc term-buffer)
|
751 | 767 | (term-mode)
|
|
0 commit comments