commit - 8d82f4f7bef520ae81a9e5f9265e9a65cc060b29
commit + 861fc513c8968adc6aac3ab85377d3e6b9054705
blob - db77054712eef39bc2a689bd2b78b6c4f884d921
blob + cf7c3b7002ca03c91b23889a340c6b387bd92778
--- cmd/mailmux/mailmux.go
+++ cmd/mailmux/mailmux.go
os.Exit(1)
}
+ rand.Seed(time.Now().UnixNano())
srv.seedfile = "/usr/share/dict/words"
http.HandleFunc("/register", srv.registerHandler)
blob - ac0acf3fb67527493f9e8fcd29421a54ca208098 (mode 644)
blob + /dev/null
--- main.go
+++ /dev/null
-package mailmux
-
-import (
- "fmt"
- "math/rand"
- "os"
- "time"
-
- "mailmux.net/aliases"
-)
-
-func init() {
- rand.Seed(time.Now().UnixNano())
-}
-
-const usage string = "usage: randomalias destination"
-
-func main() {
- if len(os.Args) < 2 {
- fmt.Println(usage)
- os.Exit(1)
- }
- dest := os.Args[1]
- username, err := RandomUsername("/usr/share/dict/words")
- if err != nil {
- fmt.Fprintln(os.Stderr, err)
- os.Exit(1)
- }
- m := make(aliases.Aliases)
- m[username] = dest
- if err := aliases.NewEncoder(os.Stdout).Encode(m); err != nil {
- fmt.Fprintln(os.Stderr, err)
- os.Exit(1)
- }
-}
blob - 267fb4c56be888c434d071a18e64935683b16f2d
blob + 7a3c4393c7ed79653bd98da9527be675ab1e44d5
--- random.go
+++ random.go
return line, nil
}
+// RandomUsername generates a random username from the dictionary file at dictpath.
+// The dictionary file should be a newline delimited text file, one word per line.
+// On Unix systems, the file /usr/share/dic/words is a suitable file.
func RandomUsername(dictpath string) (string, error) {
f, err := os.Open(dictpath)
if err != nil {