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);)