mylisp/spring-actuator.el
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 16 Jun 2021 12:50:08 +0300
changeset 1734 ae2c6a001464
parent 1666 06937ff1ec5f
permissions -rw-r--r--
Add some standard places to PATH if they are not set by login script. Rearrange the order of paths so system's are first, user's are last. For Cygwin this helps with Cygwin's paths to be situated before "C:/Windows" (Emacs is not started from a login shell on Windows!).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1483
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
1506
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     2
(require 'json)
1525
192e86762ee5 Fix: Warning: assignment to free variable js-indent-level.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1506
diff changeset
     3
(require 'js)
1506
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     4
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     5
(defvar spring-actuator-server-history nil)
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     6
(defvar spring-actuator-last-server "http://localhost:8080")
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     7
(defvar spring-actuator-path-history nil)
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     8
(defvar spring-actuator-path-completion
1485
ba6632e1f2f8 Remove POST command. Add useful report.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1484
diff changeset
     9
  '("actuator" "auditevents" "autoconfig" "beans" "configprops" "dump" "env" "features" "flyway" "health" "heapdump"
1491
4a9d4d14b87d Fix: delete extra parent.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1487
diff changeset
    10
    "info" "jolokia" "liquibase" "logfile" "loggers" "mappings" "metrics" "trace"))
1483
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
1484
8fe1eaf66e94 Allow autoload. Move cursor to the beginning of buffer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1483
diff changeset
    12
;;;###autoload
1506
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    13
(defun spring-actuator (server path)
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    14
  (interactive (list (read-string "Server: " spring-actuator-last-server 'spring-actuator-server-history)
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    15
                     (completing-read "Path: " spring-actuator-path-completion nil nil "" 'spring-actuator-path-history)))
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    16
  (setq spring-actuator-last-server server)
1483
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
  (let ( (bufname (format "actuator: %s" path)) )
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
    (when (get-buffer bufname)
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
      (kill-buffer bufname))
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
    (switch-to-buffer (url-retrieve-synchronously (format "%s/%s" server path)))
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
    (rename-buffer bufname)
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
    (goto-char (point-min))
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
    (re-search-forward "^$" nil 'move)
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
    (forward-char)
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
    (delete-region (point-min) (point))
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
    (json-pretty-print-buffer)
1484
8fe1eaf66e94 Allow autoload. Move cursor to the beginning of buffer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1483
diff changeset
    27
    (goto-char (point-min))
1487
d22fade5ae5c Detect if json-mode available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1485
diff changeset
    28
    (if (fboundp 'json-mode)
d22fade5ae5c Detect if json-mode available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1485
diff changeset
    29
        (json-mode)
d22fade5ae5c Detect if json-mode available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1485
diff changeset
    30
      (js-mode))
d22fade5ae5c Detect if json-mode available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1485
diff changeset
    31
    (setq-local js-indent-level 2)))
1506
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    32
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    33
(provide 'spring-actuator)