Skip to content

Commit 9db9c06

Browse files
committed
Use data-printers.auto
1 parent b689dcc commit 9db9c06

File tree

5 files changed

+25
-17
lines changed

5 files changed

+25
-17
lines changed

CHANGELOG.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
# Unreleased
22

3-
## Added
4-
5-
## Fixed
6-
73
## Changed
84

5+
- Bump data-printers, and use the new `auto` functionality
6+
97
# 0.4.17 (2024-12-26 / 139a028)
108

119
## Added

bb.edn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
{:deps {com.lambdaisland/launchpad {:mvn/version "0.33.149-alpha"}
1+
{:deps {com.lambdaisland/launchpad {:mvn/version "0.35.156-alpha"}
22
lambdaisland/open-source {:git/url "https://github.com/lambdaisland/open-source"
33
:git/sha "4cb6231e7df947ee8f5434e7ad48ffd8e273bcf5"}}}

bin/proj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
{:license :mpl
77
:group-id "com.lambdaisland"
88
:inception-year 2024
9-
:description "Configuration library"})
9+
:description "Configuration library"
10+
:aliases-as-scope-provided #{:provided}})
1011

1112
;; Local Variables:
1213
;; mode:clojure

deps.edn

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
{:paths ["src"]
22

33
:deps
4-
{aero/aero {:mvn/version "1.1.6"}
5-
lambdaisland/data-printers {:mvn/version "0.7.47"}}
4+
{aero/aero {:mvn/version "1.1.6"}
5+
lambdaisland/data-printers {:mvn/version "0.9.58"}}
66

77
:aliases
8-
{:test
8+
{:aliases
9+
{:provided
10+
{com.lambdaisland/cli {:mvn/version "0.19.78"}}}
11+
12+
:test
913
{:extra-paths ["test"]
1014
:extra-deps {lambdaisland/kaocha {:mvn/version "1.91.1392"}}}}}

src/lambdaisland/config.clj

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[clojure.core :as c]
66
[clojure.java.io :as io]
77
[clojure.string :as str]
8-
[lambdaisland.data-printers :as printers]))
8+
[lambdaisland.data-printers.auto :as printers]))
99

1010
(defn- env-case [s]
1111
(-> s str/upper-case (str/replace #"[-/]" "_")))
@@ -53,6 +53,9 @@
5353
(-source [this k])
5454
(-reload [this]))
5555

56+
(defn register-print [klz data-fn]
57+
(printers/register-printer klz (symbol (.getName klz)) data-fn))
58+
5659
(defn ensure-aero [path cache opts]
5760
(when-not @cache
5861
(reset! cache (aero/read-config path opts))))
@@ -74,12 +77,16 @@
7477
(-reload [this]
7578
(reset! cache (aero/read-config path opts))))
7679

80+
(register-print AeroProvider #(do {:path (.-path %)}))
81+
7782
(deftype EnvProvider [prefix]
7883
ConfigProvider
7984
(-value [this k] (System/getenv (key->env-var prefix k)))
8085
(-source [this k] (str "$" (key->env-var prefix k) " environment variable"))
8186
(-reload [this]))
8287

88+
(register-print EnvProvider #(do {:prefix (.-prefix %)}))
89+
8390
(defn- property-key [prefix k]
8491
(str (when prefix
8592
(str prefix "."))
@@ -91,25 +98,23 @@
9198
(-source [this k] (str (property-key prefix k) " java system property"))
9299
(-reload [this]))
93100

101+
(register-print PropertiesProvider #(do {:prefix (.-prefix %)}))
102+
94103
(deftype MapProvider [m desc]
95104
ConfigProvider
96105
(-value [this k] (c/get m k))
97106
(-source [this k] (str k " " desc))
98107
(-reload [this]))
99108

109+
(register-print MapProvider #(do {:desc (.-desc %)}))
110+
100111
(deftype DerefMapProvider [m desc]
101112
ConfigProvider
102113
(-value [this k] (c/get @m k))
103114
(-source [this k] (str k " " desc))
104115
(-reload [this]))
105116

106-
(doseq [c [AeroProvider
107-
EnvProvider
108-
PropertiesProvider
109-
MapProvider
110-
DerefMapProvider]]
111-
(printers/register-print c (.getName c) meta)
112-
(printers/register-pprint c (.getName c) meta))
117+
(register-print DerefMapProvider #(do {:desc (.-desc %)}))
113118

114119
(defn new-config [env providers]
115120
{:env env

0 commit comments

Comments
 (0)