Added basic pages
This commit is contained in:
		
							
								
								
									
										42
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								main.go
									
									
									
									
									
								
							@ -3,27 +3,65 @@ package main
 | 
			
		||||
import (
 | 
			
		||||
	"flag"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"os"
 | 
			
		||||
	"qurl/storage"
 | 
			
		||||
	"qurl/static"
 | 
			
		||||
	"runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:generate bindata -m Assets -r assets -p static -o static/assets.go assets
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	dburl := flag.String("u", "bolt:./qurl.db", "url to database")
 | 
			
		||||
	lsaddr := flag.String("l", "127.0.0.1:8080", "listen address/port")
 | 
			
		||||
	jsonfile := flag.String("j", "", "path to json to load into database")
 | 
			
		||||
	maxpro := flag.Int("m", runtime.NumCPU()+2,
 | 
			
		||||
		"maximum number of threads to use")
 | 
			
		||||
	flag.Parse()
 | 
			
		||||
 | 
			
		||||
	if *maxpro < 3 {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "Thread limit too low: %d (min 3)\n", *maxpro)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Limit max processes
 | 
			
		||||
	runtime.GOMAXPROCS(*maxpro)
 | 
			
		||||
 | 
			
		||||
	// Open storage backend
 | 
			
		||||
	stor, err := storage.NewStorage(*dburl)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "Database connection error: %s", err.Error())
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "Database connection error: %s\n", err.Error())
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	defer stor.Shutdown()
 | 
			
		||||
 | 
			
		||||
	// Load data if asked
 | 
			
		||||
	if *jsonfile != "" {
 | 
			
		||||
		err := loadjson(stor, *jsonfile)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			fmt.Fprintf(os.Stderr, "Load error: %s", err.Error())
 | 
			
		||||
			fmt.Fprintf(os.Stderr, "%s\n", err.Error())
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Open listener port
 | 
			
		||||
	listen, err := net.Listen("tcp", *lsaddr)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "Listen error: %s\n", err.Error())
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	mux := http.NewServeMux()
 | 
			
		||||
	mux.Handle("/index.html", &static.StaticContent{Content: "index.html"})
 | 
			
		||||
	mux.Handle("/favicon.ico", &static.StaticContent{Content: "favicon.ico"})
 | 
			
		||||
	mux.Handle("/qurl.css", &static.StaticContent{Content: "qurl.css"})
 | 
			
		||||
 | 
			
		||||
	fmt.Fprintf(os.Stdout, "qurl listening .. \n")
 | 
			
		||||
	err = http.Serve(listen, mux)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "Serve error: %s\n", err.Error())
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user