package main import ( "flag" "fmt" "cerca/server" "cerca/util" "os" "strings") func readAllowlist(location string) []string { ed := util.Describe("read allowlist") data, err := os.ReadFile(location) ed.Check(err, "read file") list := strings.Split(strings.TrimSpace(string(data)), "\n") for i, fullpath := range list { list[i] = strings.TrimPrefix(strings.TrimPrefix(fullpath, "https://"), "http://") } return list} func complain(msg string) { fmt.Printf("cerca: %s\n", msg) os.Exit(0)} func main() { // TODO (2022-01-10): somehow continually update veri sites by scraping merveilles webring sites || webring domain var allowlistLocation string var sessionKey string var dev bool flag.BoolVar(&dev, "dev", false, "trigger development mode") flag.StringVar(&allowlistLocation, "allowlist", "", "domains which can be used to read verification codes from during registration") flag.StringVar(&sessionKey, "authkey", "", "session cookies authentication key") flag.Parse() if len(sessionKey) == 0 { complain("please pass a random session auth key with --authkey") } else if len(allowlistLocation) == 0 { complain("please pass a file containing the verification code domain allowlist") } allowlist := readAllowlist(allowlistLocation) allowlist = append(allowlist, "merveilles.town") server.Serve(allowlist, sessionKey, dev)}
package main
import (
"flag"
"fmt"
"cerca/server"
"cerca/util"
"os"
"strings"
)
func readAllowlist(location string) []string {
ed := util.Describe("read allowlist")
data, err := os.ReadFile(location)
ed.Check(err, "read file")
list := strings.Split(strings.TrimSpace(string(data)), "\n")
for i, fullpath := range list {
list[i] = strings.TrimPrefix(strings.TrimPrefix(fullpath, "https://"), "http://")
}
return list
}
func complain(msg string) {
fmt.Printf("cerca: %s\n", msg)
os.Exit(0)
}
func main() {
// TODO (2022-01-10): somehow continually update veri sites by scraping merveilles webring sites || webring domain
var allowlistLocation string
var sessionKey string
var dev bool
flag.BoolVar(&dev, "dev", false, "trigger development mode")
flag.StringVar(&allowlistLocation, "allowlist", "", "domains which can be used to read verification codes from during registration")
flag.StringVar(&sessionKey, "authkey", "", "session cookies authentication key")
flag.Parse()
if len(sessionKey) == 0 {
complain("please pass a random session auth key with --authkey")
} else if len(allowlistLocation) == 0 {
complain("please pass a file containing the verification code domain allowlist")
}
allowlist := readAllowlist(allowlistLocation)
allowlist = append(allowlist, "merveilles.town")
server.Serve(allowlist, sessionKey, dev)
}