github.com/koneal2013/storymetadatagenerator@v0.0.0-20230222212341-b170f254daa5/Makefile (about) 1 CONFIG_PATH=${HOME}/.storymetadatagenerator/ 2 .PHONY: init 3 init: 4 mkdir -p ${CONFIG_PATH} 5 .PHONY: gencert 6 gencert: 7 make init 8 cfssl gencert \ 9 -initca test/ca-csr.json | cfssljson -bare ca 10 cfssl gencert \ 11 -ca=ca.pem \ 12 -ca-key=ca-key.pem \ 13 -config=test/ca-config.json \ 14 -profile=server \ 15 test/server-csr.json | cfssljson -bare server 16 cfssl gencert \ 17 -ca=ca.pem \ 18 -ca-key=ca-key.pem \ 19 -config=test/ca-config.json \ 20 -profile=client \ 21 -cn="nobody" \ 22 test/client-csr.json | cfssljson -bare nobody-client 23 cfssl gencert \ 24 -ca=ca.pem \ 25 -ca-key=ca-key.pem \ 26 -config=test/ca-config.json \ 27 -profile=client \ 28 -cn="root" \ 29 test/client-csr.json | cfssljson -bare root-client 30 mv *.pem *.csr ${CONFIG_PATH} 31 .PHONY: compile 32 compile: 33 protoc api/v1/grpc/*.proto \ 34 --go_out=. \ 35 --go-grpc_out=. \ 36 --go_opt=paths=source_relative \ 37 --go-grpc_opt=paths=source_relative \ 38 --proto_path=. 39 $(CONFIG_PATH)/model.conf: 40 cp test/model.conf ${CONFIG_PATH}/model.conf 41 $(CONFIG_PATH)/policy.csv: 42 cp test/policy.csv ${CONFIG_PATH}/policy.csv 43 .PHONY: test 44 test: $(CONFIG_PATH)/model.conf $(CONFIG_PATH)/policy.csv 45 @echo "building docker containers..." 46 @make docker-start 47 @echo "running tests..." 48 go test -v -race ./... 49 @echo "cleaning up docker containers..." 50 @make docker-down 51 .PHONY: start 52 start: 53 @make clean 54 @make build 55 @echo "running main program..." 56 @./storymetadatagenerator --config-file=./config.json 57 .PHONY: docker-start 58 docker-start: 59 @docker-compose --project-name=storymetadatagenerator up --build --force-recreate -d 60 .PHONY: docker-down 61 docker-down: 62 @docker-compose --project-name=storymetadatagenerator down 63 .PHONY: build 64 build: 65 @make test 66 @go build ./cmd/storymetadatagenerator 67 .PHONY: clean 68 clean: 69 @go clean -i 70 .PHONY: cover 71 cover: 72 @mkdir .coverage || echo "hidden coverage folder exists" 73 @echo "building docker containers..." 74 @make docker-start 75 @go test -v -cover ./... -coverprofile .coverage/coverage.out 76 @go tool cover -html=.coverage/coverage.out -o .coverage/coverage.html 77 @echo "cleaning up docker containers..." 78 @make docker-down 79 .PHONY: covero 80 covero: 81 @make cover 82 @open .coverage/coverage.html 83 files += $(filter-out %_test.go,$(wildcard api/v1/storymetadata.go)) 84 .PHONY: mocks 85 mocks: 86 @rm -rf mocks 87 @go install github.com/golang/mock/mockgen 88 @echo "generating mocks..." 89 @$(foreach file, $(files), mockgen -package mocks -destination mocks/$(subst /,'-',$(file)) -source $(file);)