emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/detached 4eb5e3e9aa 04/38: Add side effect to start com


From: ELPA Syncer
Subject: [elpa] externals/detached 4eb5e3e9aa 04/38: Add side effect to start command
Date: Thu, 17 Nov 2022 17:57:53 -0500 (EST)

branch: externals/detached
commit 4eb5e3e9aa105bad494d3eb211ce2c541bcf6223
Author: Niklas Eklund <niklas.eklund@posteo.net>
Commit: Niklas Eklund <niklas.eklund@posteo.net>

    Add side effect to start command
    
    Update session to state started when the function is called.
---
 detached.el           | 11 ++++++++---
 test/detached-test.el | 10 ++++++++++
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/detached.el b/detached.el
index 08ece25a5e..bfab5c7591 100644
--- a/detached.el
+++ b/detached.el
@@ -734,6 +734,7 @@ Optionally SUPPRESS-OUTPUT."
 
 (defun detached-start-detached-session (session)
   "Start SESSION in detached mode."
+  (detached--set-session-state session 'started)
   (if (detached-session-local-p session)
       (apply #'start-process-shell-command
              `("detached" nil ,(detached--dtach-command session t)))
@@ -910,6 +911,7 @@ This function uses the `notifications' library."
   (detached-connection-local-variables
    (let* ((socket (detached--session-file session 'socket t))
           (log (detached--session-file session 'log t)))
+     (detached--set-session-state session 'started)
      (if (detached-session-degraded-p session)
          (let ((tail-command
                 `(,detached-tail-program
@@ -970,9 +972,7 @@ This function uses the `notifications' library."
 
 (defun detached-session-state (session)
   "Return SESSION's state."
-  (if (detached-session-validated-p session)
-      (detached--session-state session)
-    'unknown))
+  (detached--session-state session))
 
 (defun detached-session-status (session)
   "Return status for SESSION."
@@ -1490,6 +1490,11 @@ Optionally make the path LOCAL to host."
                        (seq-length durations)))))
     `(:durations ,durations :mean ,mean :std ,std)))
 
+(defun detached--set-session-state (session state)
+  "Update SESSION with STATE."
+  (setf (detached--session-state session) state)
+  (detached--db-update-entry session))
+
 ;;;;; Database
 
 (defun detached--db-initialize ()
diff --git a/test/detached-test.el b/test/detached-test.el
index 2ad733e19f..9a26dc4794 100644
--- a/test/detached-test.el
+++ b/test/detached-test.el
@@ -68,6 +68,16 @@
 
 ;;;;; Session interface
 
+(ert-deftest detached-test-set-session-state ()
+  (detached-test--with-temp-database
+   (cl-letf* ((session (detached-create-session "foo")))
+     (should (eq 'unknown (detached-session-state session)))
+     (detached--set-session-state session 'started)
+     (should (eq 'started
+                 (detached-session-state
+                  (detached--db-get-session
+                   (detached-session-id session))))))))
+
 (ert-deftest detached-test-session-status ()
   (let ((failed-session (detached--session-create :status `(failure . 128))))
     (should (detached-session-failed-p failed-session))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]