mylisp/maven-central.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:
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
;;; maven-central.el --- Maven central auxility
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
;;; Commentary:
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
;;
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
1091
bbe864449f48 Fix dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1082
diff changeset
     6
(require 'json)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
(require 'url-handlers)
1508
fad1a57bf25f Move maven handling logic from maven-central.el to separate file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1302
diff changeset
     8
(require 'maven)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
;;; Code:
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    12
(defvar maven-central/buffer-name "*Maven Central*")
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    14
(defconst maven-central/search-url "http://search.maven.org/solrsearch/select?wt=json&rows=20")
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    16
(defun maven-central/versions-url (groupId artifactId)
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    17
  (concat maven-central/search-url "&core=gav&q=g:" (url-hexify-string groupId) (url-hexify-string " AND ") "a:" (url-hexify-string artifactId)))
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    18
;; (maven-central/versions-url "junit" "junit")
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    20
(defun maven-central/versions-callback (status)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
  (let ( (buffer (current-buffer)) json )
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
    (with-temp-buffer
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
      (url-insert buffer)
1245
545d1e17bfe3 Fix: Warning: `beginning-of-buffer' is for interactive use only; use `(goto-char (point-min))' instead.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1244
diff changeset
    24
      (goto-char (point-min))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
      (setq json (json-read))
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    26
      ;; (switch-to-buffer maven-central/buffer-name)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
      ;; (pp json)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
      (message "Available versions: %s" (mapconcat (lambda (json) (cdr (assq 'v json))) (cdr (assq 'docs (cdr (assoc 'response json)))) ", "))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
      )))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    31
(defun maven-central/versions (groupId artifactId)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
  "Retrieve available versions."
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    33
  (url-retrieve (maven-central/versions-url groupId artifactId) #'maven-central/versions-callback))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    35
(defun maven-central/last-version-url (groupId artifactId)
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    36
  (concat maven-central/search-url "&q=g:" (url-hexify-string groupId) (url-hexify-string " AND ") "a:" (url-hexify-string artifactId)))
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    37
;; (maven-central/versions-url "junit" "junit")
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    39
(defun maven-central/last-version-callback (status)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
  (let ( (buffer (current-buffer)) json )
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
    (with-temp-buffer
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
      (url-insert buffer)
1245
545d1e17bfe3 Fix: Warning: `beginning-of-buffer' is for interactive use only; use `(goto-char (point-min))' instead.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1244
diff changeset
    43
      (goto-char (point-min))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
      (setq json (json-read))
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    45
      ;; (switch-to-buffer maven-central/buffer-name)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
      ;; (pp json)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
      (message "Latest version: %s" (cdr (assq 'latestVersion (elt (cdr (assq 'docs (cdr (assoc 'response json)))) 0))))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
      )))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    50
(defun maven-central/last-version (groupId artifactId)
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
  "Retrieve last package version."
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    52
  (url-retrieve (maven-central/last-version-url groupId artifactId) #'maven-central/last-version-callback))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
1151
350534cdf7be Add missing autoloads.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1145
diff changeset
    54
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    55
(defun maven-central-last-version-from-pom ()
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
  (interactive)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
  (let (dependency groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    58
    (setq dependency (maven/parse-pom-dependency))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
    (setq groupId (elt dependency 0))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
    (setq artifactId (elt dependency 1))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
    (when (and groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    62
      (maven-central/last-version groupId artifactId))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
    ))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
1151
350534cdf7be Add missing autoloads.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1145
diff changeset
    65
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    66
(defun maven-central-versions-from-pom ()
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    67
  (interactive)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    68
  (let (dependency groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    69
    (setq dependency (maven/parse-pom-dependency))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
    (setq groupId (elt dependency 0))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
    (setq artifactId (elt dependency 1))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    72
    (when (and groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    73
      (maven-central/versions groupId artifactId))
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    74
    ))
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    75
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    76
(defun ivy/parse-dependency ()
1513
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    77
  (let ( end groupId artifactId )
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    78
    (save-excursion
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    79
      (if (looking-at "[^>]*<dependency ")
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    80
          (progn (search-forward "<") (backward-char))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    81
        (search-backward "<dependency " nil t))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    82
      (when (re-search-forward "<dependency [^/]*/>")
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    83
        (setq end (point))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    84
        (search-backward "<")
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    85
        (save-restriction
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    86
          (narrow-to-region (point) end)
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    87
          (goto-char (point-min))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    88
          (when (re-search-forward "\\s-org\\s-*=\\s-*['\"]\\([^'\"]+\\)['\"]" nil t)
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    89
            (setq groupId (match-string 1)))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    90
          (goto-char (point-min))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    91
          (when (re-search-forward "\\s-name\\s-*=\\s-*['\"]\\([^'\"]+\\)['\"]" nil t)
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    92
            (setq artifactId (match-string 1)))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    93
          )))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    94
    (list groupId artifactId)))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    95
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    96
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    97
(defun maven-central-last-version-from-ivy ()
1513
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    98
  (interactive)
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
    99
  (let (dependency groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
   100
    (setq dependency (ivy/parse-dependency))
1513
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   101
    (setq groupId (elt dependency 0))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   102
    (setq artifactId (elt dependency 1))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   103
    (when (and groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
   104
      (maven-central/last-version groupId artifactId))
1513
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   105
    ))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   106
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   107
;;;###autoload
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
   108
(defun maven-central-versions-from-ivy ()
1513
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   109
  (interactive)
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   110
  (let (dependency groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
   111
    (setq dependency (ivy/parse-dependency))
1513
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   112
    (setq groupId (elt dependency 0))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   113
    (setq artifactId (elt dependency 1))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   114
    (when (and groupId artifactId)
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
   115
      (maven-central/versions groupId artifactId))
1513
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   116
    ))
0da077ba84ab Parser for ivy dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1509
diff changeset
   117
1535
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   118
(defun maven-central/parse-gradle-dependency ()
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   119
  (let ( groupId artifactId )
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   120
    (save-excursion
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   121
      (goto-char (line-beginning-position))
1551
e03dcbea6a1f Allow extra symbols in version for Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1535
diff changeset
   122
      (when (re-search-forward "\\([\"']\\)\\([a-zA-Z0-9.-]+\\):\\([a-zA-Z0-9.-]+\\):?[^\"']*\\1" (line-end-position) t)
1535
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   123
        (setq groupId (match-string 2))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   124
        (setq artifactId (match-string 3))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   125
        (list groupId artifactId)))))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   126
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   127
;;;###autoload
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   128
(defun maven-central-last-version-from-gradle ()
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   129
  (interactive)
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   130
  (let (dependency groupId artifactId)
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   131
    (setq dependency (maven-central/parse-gradle-dependency))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   132
    (setq groupId (elt dependency 0))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   133
    (setq artifactId (elt dependency 1))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   134
    (when (and groupId artifactId)
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   135
      (maven-central/last-version groupId artifactId))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   136
    ))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   137
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   138
;;;###autoload
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   139
(defun maven-central-versions-from-gradle ()
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   140
  (interactive)
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   141
  (let (dependency groupId artifactId)
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   142
    (setq dependency (maven-central/parse-gradle-dependency))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   143
    (setq groupId (elt dependency 0))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   144
    (setq artifactId (elt dependency 1))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   145
    (when (and groupId artifactId)
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   146
      (maven-central/versions groupId artifactId))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   147
    ))
15388800a8e2 Added Gradle support.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1517
diff changeset
   148
1599
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   149
(defun maven-central/open (groupId artifactId)
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   150
  "Open in Maven Central WEB page info for package."
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   151
  (browse-url (format "https://mvnrepository.com/artifact/%s/%s" groupId artifactId)))
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   152
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   153
;;;###autoload
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   154
(defun maven-central-open-from-gradle ()
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   155
  (interactive)
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   156
  (let (dependency groupId artifactId)
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   157
    (setq dependency (maven-central/parse-gradle-dependency))
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   158
    (setq groupId (elt dependency 0))
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   159
    (setq artifactId (elt dependency 1))
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   160
    (when (and groupId artifactId)
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   161
      (maven-central/open groupId artifactId))
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   162
    ))
665bd30beaae Added command to open package info from Maven Central in Browser.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1551
diff changeset
   163
1517
29677daeb8ab Interactive methods use '-', private methods uses `/` as separator after
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
   164
;; (maven-central/last-version "junit" "junit")
1082
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   165
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   166
(provide 'maven-central)
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   167
964519e5a5ac maven-central helper.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   168
;;; maven-central.el ends here