X-Git-Url: http://www.git.cypherpunks.ru/?p=gocheese.git;a=blobdiff_plain;f=main.go;h=46be5259f871b8bb6fb6fa1f9926608f6443bbd2;hp=12a325a93435af81d330f2ff9e844e31da891e13;hb=4a6954050e174bf8b851c82bc2476409a4d78eea;hpb=e97a705ee3574ed3b4cf707f85fc2dff461d9365 diff --git a/main.go b/main.go index 12a325a..46be525 100644 --- a/main.go +++ b/main.go @@ -105,8 +105,9 @@ var ( pypiURL = flag.String("pypi", "https://pypi.org/simple/", "Upstream (PyPI) URL") pypiCertHash = flag.String("pypi-cert-hash", "", "Authenticate upstream by its X.509 certificate's SPKI SHA256 hash") - passwdPath = flag.String("passwd", "", "Path to FIFO for upload authentication") - passwdCheck = flag.Bool("passwd-check", false, "Run password checker") + passwdPath = flag.String("passwd", "", "Path to FIFO for upload authentication") + passwdListPath = flag.String("passwd-list", "", "Path to FIFO for login listing") + passwdCheck = flag.Bool("passwd-check", false, "Run password checker") logTimestamped = flag.Bool("log-timestamped", false, "Prepend timestmap to log messages") fsck = flag.Bool("fsck", false, "Check integrity of all packages (errors are in stderr)") @@ -306,7 +307,11 @@ func main() { if *passwdPath != "" { go func() { for { - fd, err := os.OpenFile(*passwdPath, os.O_RDONLY, os.FileMode(0666)) + fd, err := os.OpenFile( + *passwdPath, + os.O_RDONLY, + os.FileMode(0666), + ) if err != nil { log.Fatalln(err) } @@ -315,6 +320,22 @@ func main() { } }() } + if *passwdListPath != "" { + go func() { + for { + fd, err := os.OpenFile( + *passwdListPath, + os.O_WRONLY|os.O_APPEND, + os.FileMode(0666), + ) + if err != nil { + log.Fatalln(err) + } + passwdLister(fd) + fd.Close() + } + }() + } if (*tlsCert != "" && *tlsKey == "") || (*tlsCert == "" && *tlsKey != "") { log.Fatalln("Both -tls-cert and -tls-key are required")