Thread (9 messages) flat view 9 messages, 2 authors, 2021-11-04

Re: credential-store get: No such file or directory

From: Steven Penny <hidden>
Date: 2021-11-03 01:20:09

On Tue, Nov 2, 2021 at 7:27 PM Steven Penny wrote:
fatal: cannot run git credential-store get: No such file or directory
I came up with a workaround. I wrote my own AskPass program using Go language.
Here it is:

package main

import (
   "bytes"
   "fmt"
   "net/url"
   "os"
)

func main() {
   cache, err := os.UserCacheDir()
   if err != nil {
      panic(err)
   }
   buf, err := os.ReadFile(cache + "/git/credentials")
   if err != nil {
      panic(err)
   }
   buf = bytes.TrimSpace(buf)
   addr, err := url.Parse(string(buf))
   if err != nil {
      panic(err)
   }
   if len(os.Args) != 2 {
      return
   }
   prompt := os.Args[1]
   if len(prompt) < 8 {
      return
   }
   switch prompt[:8] {
   case "Username":
      fmt.Fprintln(os.Stderr, "Username")
      fmt.Println(addr.User.Username())
   case "Password":
      fmt.Fprintln(os.Stderr, "Password")
      pass, ok := addr.User.Password()
      if ok {
         fmt.Println(pass)
      }
   }
}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help