Re: credential-store get: No such file or directory
- From
- Steven Penny <srpen6@gmail.com>
- Date
- Nov 3, 2021, 01:19 UTC
- Message-ID
- <CAP8dQmvguqPXy6Rg_RkuFmf4+LPh79HM_EBM+Wi9dYn3N+vrcQ@mail.gmail.com>
- In-Reply-To
- <CAP8dQmu6Dfo4KBsVk+6xeR6=+S8bOKk-kbc3ub7c0jAsH61-cg@mail.gmail.com>
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)
}
}
}