-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathopensource-version.el
51 lines (38 loc) · 1.72 KB
/
opensource-version.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
;;; opensource-version.el --- Opensource Emacs client version
;; Copyright (C) 2016 Nicolas Lamirault <[email protected]>
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; You may obtain a copy of the License at
;; http://www.apache.org/licenses/LICENSE-2.0
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
;;; Commentary:
;;; Code:
(require 'dash)
(require 'pkg-info)
(require 's)
(defun opensource--library-version ()
"Get the version in the opensource client header."
(-when-let (version (pkg-info-library-version 'opensource))
(pkg-info-format-version version)))
;;;###autoload
(defun opensource-version (&optional show-version)
"Get the opensource version as string.
If called interactively or if SHOW-VERSION is non-nil, show the
version in the echo area and the messages buffer.
The returned string includes both, the version from package.el
and the library version, if both a present and different.
If the version number could not be determined, signal an error,
if called interactively, or if SHOW-VERSION is non-nil, otherwise
just return nil."
(interactive (list (not (or executing-kbd-macro noninteractive))))
(let* ((version (opensource--library-version)))
(unless version
(error "Could not find out opensource version"))
(message "opensource %s" version)
version))
(provide 'opensource-version)
;;; opensource-version.el ends here