// +build ignore

package main

import (
	"bufio"
	"fmt"
	"net/http"
	"os"
)

const topPasswords = `https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/10_million_password_list_top_10000.txt`
const fileHeader = `// THIS FILE WAS AUTOMATICALLY GENERATED BY A TOOL
// Use ` + "`go generate`" + ` to generate this.

package toppasswords

// TopPassword is a list of the top 10,000 passwords longer or exactly 8
// characters. This is used in Hanayo to detect common password, and to inform
// the user about it.
var TopPasswords = []string{
`

func main() {
	resp, err := http.Get(topPasswords)
	if err != nil {
		panic(err)
	}

	f, err := os.Create("modules/top-passwords/top_passwords.go")
	defer f.Close()
	if err != nil {
		panic(err)
	}

	f.Write([]byte(fileHeader))

	s := bufio.NewScanner(resp.Body)

	for s.Scan() {
		// passwords shorter than 8 characters aren't allowed on ripple anyway.
		if len(s.Text()) < 8 {
			continue
		}
		fmt.Fprintf(f, "\t\"%s\",\n", s.Text())
	}

	f.Write([]byte{'}', '\n'})

	fmt.Println("generate: top_passwords.go")
}
