Skip to content

Commit

Permalink
Allow --pat to continue to be used
Browse files Browse the repository at this point in the history
  • Loading branch information
slimslenderslacks committed Oct 1, 2024
1 parent 2bbcbbd commit c3fa7c1
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 16 deletions.
14 changes: 10 additions & 4 deletions src/docker.clj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
[clojure.pprint :refer [pprint]]
[clojure.spec.alpha :as spec]
[clojure.string :as string]
[creds])
[creds]
logging)
(:import
[java.net UnixDomainSocketAddress]
[java.nio ByteBuffer]
Expand Down Expand Up @@ -231,9 +232,9 @@
(pull (merge m
{:serveraddress "https://index.docker.io/v1/"}
(when (and (:user m)
(:jwt m))
(or (:jwt m) (:pat m)))
{:creds {:username (:user m)
:password (:jwt m)}}))))
:password (or (:jwt m) (:pat m))}}))))

(defn run-function [{:keys [timeout] :or {timeout 600000} :as m}]
(-pull m)
Expand Down Expand Up @@ -348,7 +349,12 @@
[]
(try
(when (is-logged-in? {})
(get-login-info {}))
(merge
{:is-logged-in? true}
(try
(get-login-info {})
(catch Throwable ex
(logging/warn "Unable to extract login info: {{ex}}" {:ex ex})))))
(catch Throwable _)))

(comment
Expand Down
32 changes: 20 additions & 12 deletions src/prompts.clj
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,8 @@
[nil "--url OPENAI_COMPATIBLE_ENDPOINT" "OpenAI compatible endpoint url"]
;; required if not using positional args
[nil "--user USER" "The hub user"]
;; required if not using positional args
;; optional
[nil "--pat PAT" "personal access token"]
;; can not validate this without a host helper
[nil "--host-dir DIR" "Project directory (on host filesystem)"]
;; required if not using positional args
Expand Down Expand Up @@ -426,14 +427,15 @@
(s/def ::platform (fn [s] (#{:darwin :linux :windows} (keyword (string/lower-case s)))))
(s/def ::user string?)
(s/def ::jwt string?)
(s/def ::pat string?)
(s/def ::prompts #(fs/exists? %))
(s/def ::host-dir string?)
(s/def ::offline boolean?)
(s/def ::thread-id string?)
(s/def ::save-thread-volume boolean?)
(s/def ::url string?)
(s/def ::run-args (s/keys :req-un [::platform ::prompts ::host-dir]
:opt-un [::offline ::thread-id ::save-thread-volume ::user ::jwt ::url]))
:opt-un [::offline ::thread-id ::save-thread-volume ::user ::pat ::jwt ::url]))

(defn validate [k]
(fn [opts]
Expand All @@ -454,10 +456,16 @@
(git/prompt-file dir-or-ref))}))))

(defn login-info []
(if-let [{:keys [token id]} (docker/get-login-info-from-desktop-backend)]
{:jwt token
:user id}
(warn "Docker Desktop not logged in" {})))
(if-let [{:keys [token id is-logged-in?]} (docker/get-login-info-from-desktop-backend)]
(cond
(and is-logged-in? token id)
{:jwt token
:user id}
is-logged-in?
(warn "Docker Desktop logged in but creds not available" {})
:else
(warn "Docker Desktop not logged in" {}))
(warn "unable to check Docker Desktop for login" {})))

(defn command [opts & [c :as args]]
(case c
Expand Down Expand Up @@ -486,15 +494,15 @@
(async/<!! ((comp conversation-loop (validate ::run-args))
(-> opts
(assoc :thread-id thread-id)
((fn [opts] (merge
(apply merge-deprecated opts (rest args))
(login-info))))))))
((fn [opts] (merge
(apply merge-deprecated opts (rest args))
(login-info))))))))

opts))
(fn []
((comp get-prompts (validate ::run-args)) (merge
(apply merge-deprecated opts args)
(login-info))))))
((comp get-prompts (validate ::run-args)) (merge
(apply merge-deprecated opts args)
(login-info))))))

(defn -main [& args]
(try
Expand Down

0 comments on commit c3fa7c1

Please sign in to comment.