Skip to content

Commit

Permalink
[slipset#47] Profile activation for maven settings
Browse files Browse the repository at this point in the history
  • Loading branch information
ieugen committed Feb 28, 2022
1 parent d1fac08 commit b0f8fe4
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 11 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,5 @@ pom.xml.asc

# Calva and clojure-lsp
.calva
.lsp
.lsp
.cache
44 changes: 34 additions & 10 deletions src/deps_deploy/maven_settings.clj
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,22 @@
(into {} (map (partial server-credentials plain-master-pw) servers)))))

(defn active-profiles
"Map of active profile name to ^org.apache.maven.settings.Profile instance."
"Map of active profile name to ^org.apache.maven.settings.Profile instance.
opts is a map that can contain:
:additional-profiles - collection of additional profiles to activate
This function should follow
https://maven.apache.org/guides/introduction/introduction-to-profiles.html#details-on-profile-activation"
([]
(active-profiles (read-settings)))
(active-profiles (read-settings) nil))
([^Settings settings]
(let [active-profiles (.getActiveProfiles settings)
(active-profiles settings nil))
([^Settings settings opts]
(let [{:keys [additional-profiles]} opts
active-profiles (.getActiveProfiles settings)
active-profiles (concat active-profiles additional-profiles)
profiles-map (.getProfilesAsMap settings)]
(select-keys profiles-map active-profiles))))

Expand All @@ -86,7 +97,9 @@
([]
(active-repositories (read-settings)))
([^Settings settings]
(let [active-profiles (active-profiles settings)
(active-repositories settings nil))
([^Settings settings opts]
(let [active-profiles (active-profiles settings opts)
get-repos (fn get-repos [p] (into [] (.getRepositories (val p))))
repo2props (fn repo2props [r] {(.getId r) {:id (.getId r)
:url (.getUrl r)
Expand All @@ -102,21 +115,28 @@
Passwords for each server are decoded and added to each repo."
([]
(deps-repositories (read-settings) (read-settings-security)))
([opts]
(deps-repositories (read-settings) (read-settings-security) opts))
([settings settings-security]
(deps-repositories settings settings-security nil))
([settings settings-security opts]
(let [servers-with-pw (servers-with-passwords settings settings-security)
active-repos (active-repositories settings)]
active-repos (active-repositories settings opts)]
(merge-with merge servers-with-pw active-repos))))

(defn deps-repo-by-id
"Return a map from repository id to repository settings.
Result can be passed to deps-deploy/deploy fn:
{repo-id (get (desp-repositories s ss) repo-id)}
If not provided, will read $HOME/.m2/settings.xml and $HOME/.m2/settings-security.xml."
If settings and settings-security are not provided,
the function will read $HOME/.m2/settings.xml and $HOME/.m2/settings-security.xml."
([^String repo-id]
(deps-repo-by-id repo-id (read-settings) (read-settings-security)))
([^String repo-id ^Settings settings ^SettingsSecurity settings-security]
{repo-id (get (deps-repositories settings settings-security) repo-id)}))
(deps-repo-by-id repo-id (read-settings) (read-settings-security) nil))
([^String repo-id opts]
(deps-repo-by-id repo-id (read-settings) (read-settings-security) opts))
([^String repo-id ^Settings settings ^SettingsSecurity settings-security opts]
{repo-id (get (deps-repositories settings settings-security opts) repo-id)}))

(comment

Expand All @@ -136,7 +156,11 @@

(read-settings default-settings-path)

(active-profiles (read-settings))
(active-profiles (read-settings) {:additional-profiles ["drevidence"]})

(deps-repo-by-id "dre-releases")

(deps-repositories {:additional-profiles ["drevidence"]})

(active-repositories (read-settings))

Expand Down
7 changes: 7 additions & 0 deletions test/deps_deploy/maven_settings_test.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(ns deps-deploy.maven-settings-test
(:require [clojure.test :refer :all]
[deps-deploy.maven-settings :as ms]))

(deftest a-test
(testing "FIXME, I fail."
(is (= 0 1))))

0 comments on commit b0f8fe4

Please sign in to comment.