]> Cypherpunks.ru repositories - gocheese.git/blobdiff - main.go
Passwords listing ability
[gocheese.git] / main.go
diff --git a/main.go b/main.go
index 12a325a93435af81d330f2ff9e844e31da891e13..46be5259f871b8bb6fb6fa1f9926608f6443bbd2 100644 (file)
--- 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")