2017-05-02 12:39:53 +02:00
package main
import (
2017-05-06 00:33:56 +02:00
"bufio"
2017-05-05 14:10:35 +02:00
"flag"
2017-05-06 00:33:56 +02:00
"fmt"
2017-05-05 14:20:51 +02:00
2017-05-05 15:08:02 +02:00
"github.com/ewhal/nyaa/config"
2017-05-06 20:27:26 +02:00
"github.com/ewhal/nyaa/db"
2017-05-06 00:33:56 +02:00
"github.com/ewhal/nyaa/router"
"github.com/ewhal/nyaa/util/log"
2017-05-05 16:39:15 +02:00
2017-05-02 12:39:53 +02:00
"net/http"
2017-05-05 14:10:35 +02:00
"os"
2017-05-02 12:39:53 +02:00
"time"
)
2017-05-05 15:08:02 +02:00
func RunServer ( conf * config . Config ) {
2017-05-05 16:39:15 +02:00
http . Handle ( "/" , router . Router )
2017-05-03 19:45:18 +02:00
2017-05-02 12:39:53 +02:00
// Set up server,
srv := & http . Server {
2017-05-05 14:10:35 +02:00
Addr : fmt . Sprintf ( "%s:%d" , conf . Host , conf . Port ) ,
2017-05-02 12:39:53 +02:00
WriteTimeout : 15 * time . Second ,
ReadTimeout : 15 * time . Second ,
}
err := srv . ListenAndServe ( )
2017-05-05 14:20:51 +02:00
log . CheckError ( err )
2017-05-02 12:39:53 +02:00
}
2017-05-05 14:10:35 +02:00
func main ( ) {
2017-05-05 15:08:02 +02:00
conf := config . NewConfig ( )
2017-05-06 20:27:26 +02:00
process_flags := conf . BindFlags ( )
2017-05-05 14:10:35 +02:00
defaults := flag . Bool ( "print-defaults" , false , "print the default configuration file on stdout" )
flag . Parse ( )
if * defaults {
stdout := bufio . NewWriter ( os . Stdout )
conf . Pretty ( stdout )
stdout . Flush ( )
os . Exit ( 0 )
} else {
2017-05-06 20:27:26 +02:00
err := process_flags ( )
if err != nil {
log . CheckError ( err )
}
db . ORM , _ = db . GormInit ( conf )
2017-05-05 14:10:35 +02:00
RunServer ( conf )
}
2017-05-06 17:53:17 +02:00
}