Make database path more dynamic
This commit is contained in:
		
							
								
								
									
										22
									
								
								cmd/main.go
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								cmd/main.go
									
									
									
									
									
								
							@@ -1,19 +1,39 @@
 | 
				
			|||||||
package main
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
 | 
						"path"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"haberdasher-twirp/haberdasher"
 | 
						"haberdasher-twirp/haberdasher"
 | 
				
			||||||
	"haberdasher-twirp/internal/haberdasherserver"
 | 
						"haberdasher-twirp/internal/haberdasherserver"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
 | 
						var cwd, dbPath, dbDir string
 | 
				
			||||||
 | 
						var err error
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var bind string = ":8080"
 | 
						var bind string = ":8080"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						cwd, err = os.Getwd()
 | 
				
			||||||
 | 
						dbPath = path.Join(cwd, "var/hat.db")
 | 
				
			||||||
 | 
						dbDir = path.Dir(dbPath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if _, err = os.Stat(dbDir); os.IsNotExist(err) {
 | 
				
			||||||
 | 
							err = os.Mkdir(dbDir, 0700)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								fmt.Printf("boltdb: %s\n", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(os.Args) > 1 {
 | 
						if len(os.Args) > 1 {
 | 
				
			||||||
		bind = os.Args[1]
 | 
							bind = os.Args[1]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	server := &haberdasherserver.Server{}
 | 
					
 | 
				
			||||||
 | 
						fmt.Printf("boltdb: %s\n", dbPath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						server := &haberdasherserver.Server{DBPath: dbPath}
 | 
				
			||||||
	twirpHandler := haberdasher.NewHaberdasherServer(server)
 | 
						twirpHandler := haberdasher.NewHaberdasherServer(server)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	http.ListenAndServe(bind, twirpHandler)
 | 
						http.ListenAndServe(bind, twirpHandler)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,9 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const dbBucket = "hats"
 | 
					const dbBucket = "hats"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Server struct{}
 | 
					type Server struct {
 | 
				
			||||||
 | 
						DBPath string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Hat struct {
 | 
					type Hat struct {
 | 
				
			||||||
	Inches int32  `json:"inchues"`
 | 
						Inches int32  `json:"inchues"`
 | 
				
			||||||
@@ -64,7 +66,7 @@ func HatQueryToHatQueryModel(q *pb.HatQuery) HatQuery {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (s *Server) MakeHat(ctx context.Context, size *pb.Size) (hat *pb.Hat, err error) {
 | 
					func (s *Server) MakeHat(ctx context.Context, size *pb.Size) (hat *pb.Hat, err error) {
 | 
				
			||||||
	st, _ := NewStore("hat.db", 0600, nil)
 | 
						st, _ := NewStore(s.DBPath, 0600, nil)
 | 
				
			||||||
	defer st.Close()
 | 
						defer st.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if size.Inches <= 0 {
 | 
						if size.Inches <= 0 {
 | 
				
			||||||
@@ -85,7 +87,7 @@ func (s *Server) MakeHat(ctx context.Context, size *pb.Size) (hat *pb.Hat, err e
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (s *Server) ListHats(ctx context.Context, q *pb.HatQuery) (hats *pb.Hats, err error) {
 | 
					func (s *Server) ListHats(ctx context.Context, q *pb.HatQuery) (hats *pb.Hats, err error) {
 | 
				
			||||||
	st, _ := NewStore("hat.db", 0600, nil)
 | 
						st, _ := NewStore(s.DBPath, 0600, nil)
 | 
				
			||||||
	defer st.Close()
 | 
						defer st.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	hs, err := st.ListHats(HatQueryToHatQueryModel(q))
 | 
						hs, err := st.ListHats(HatQueryToHatQueryModel(q))
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user