reflector.go/main.go
2018-01-30 20:15:21 -05:00

100 lines
2 KiB
Go

package main
import (
"encoding/json"
"flag"
"io/ioutil"
"math/rand"
"os"
"strconv"
"time"
"github.com/lbryio/reflector.go/db"
"github.com/lbryio/reflector.go/peer"
"github.com/lbryio/reflector.go/reflector"
"github.com/lbryio/reflector.go/store"
log "github.com/sirupsen/logrus"
)
func checkErr(err error) {
if err != nil {
panic(err)
}
}
func main() {
rand.Seed(time.Now().UnixNano())
log.SetLevel(log.DebugLevel)
confFile := flag.String("conf", "config.json", "Config file")
flag.Parse()
conf := loadConfig(*confFile)
db := new(db.SQL)
err := db.Connect(conf.DBConn)
checkErr(err)
s3 := store.NewS3BlobStore(conf.AwsID, conf.AwsSecret, conf.BucketRegion, conf.BucketName)
combo := store.NewDBBackedS3Store(s3, db)
serverType := ""
if len(os.Args) > 1 {
serverType = os.Args[1]
}
switch serverType {
case "reflector":
reflectorAddress := "localhost:" + strconv.Itoa(reflector.DefaultPort)
server := reflector.NewServer(combo)
log.Fatal(server.ListenAndServe(reflectorAddress))
case "peer":
peerAddress := "localhost:" + strconv.Itoa(peer.DefaultPort)
server := peer.NewServer(combo)
log.Fatal(server.ListenAndServe(peerAddress))
default:
log.Fatal("invalid server type")
}
//
//var err error
//client := reflector.Client{}
//
//log.Println("Connecting to " + reflectorAddress)
//err = client.Connect(reflectorAddress)
//checkErr(err)
//
//log.Println("Connected")
//
//defer func() {
// log.Println("Closing connection")
// client.Close()
//}()
//
//blob := make([]byte, 2*1024*1024)
//_, err = rand.Read(blob)
//checkErr(err)
//err = client.SendBlob(blob)
//checkErr(err)
}
type config struct {
AwsID string `json:"aws_id"`
AwsSecret string `json:"aws_secret"`
BucketRegion string `json:"bucket_region"`
BucketName string `json:"bucket_name"`
DBConn string `json:"db_conn"`
}
func loadConfig(path string) config {
raw, err := ioutil.ReadFile(path)
checkErr(err)
var c config
err = json.Unmarshal(raw, &c)
checkErr(err)
return c
}