github.com/khulnasoft-lab/tunnel-db@v0.0.0-20231117205118-74e1113bd007/Makefile (about) 1 SHELL=/bin/bash 2 LDFLAGS=-ldflags "-s -w" 3 4 GOPATH=$(shell go env GOPATH) 5 GOBIN=$(GOPATH)/bin 6 7 ifndef REPO_OWNER 8 REPO_OWNER=khulnasoft-lab 9 endif 10 11 u := $(if $(update),-u) 12 13 $(GOBIN)/wire: 14 go install github.com/google/wire/cmd/wire@v0.5.0 15 16 .PHONY: wire 17 wire: $(GOBIN)/wire 18 wire gen ./... 19 20 $(GOBIN)/mockery: 21 go install github.com/knqyf263/mockery/cmd/mockery@latest 22 23 .PHONY: mock 24 mock: $(GOBIN)/mockery 25 $(GOBIN)/mockery -all -inpkg -case=snake 26 27 .PHONY: deps 28 deps: 29 go get ${u} -d 30 go mod tidy 31 32 $(GOBIN)/golangci-lint: 33 curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOBIN) v1.54.2 34 35 .PHONY: test 36 test: 37 go test -v -short -race -timeout 30s -coverprofile=coverage.txt -covermode=atomic ./... 38 39 .PHONY: lint 40 lint: $(GOBIN)/golangci-lint 41 $(GOBIN)/golangci-lint run 42 43 .PHONY: lintfix 44 lintfix: $(GOBIN)/golangci-lint 45 $(GOBIN)/golangci-lint run --fix 46 47 .PHONY: build 48 build: 49 go build $(LDFLAGS) ./cmd/tunnel-db 50 51 .PHONY: clean 52 clean: 53 rm -rf integration/testdata/fixtures/ 54 55 $(GOBIN)/bbolt: 56 go install go.etcd.io/bbolt/cmd/bbolt@v1.3.5 57 58 tunnel-db: 59 make build 60 61 .PHONY: db-fetch-langs 62 db-fetch-langs: 63 mkdir -p cache/{ruby-advisory-db,php-security-advisories,nodejs-security-wg,ghsa,cocoapods-specs,bitnami-vulndb} 64 wget -qO - https://github.com/rubysec/ruby-advisory-db/archive/master.tar.gz | tar xz -C cache/ruby-advisory-db --strip-components=1 65 wget -qO - https://github.com/FriendsOfPHP/security-advisories/archive/master.tar.gz | tar xz -C cache/php-security-advisories --strip-components=1 66 wget -qO - https://github.com/nodejs/security-wg/archive/main.tar.gz | tar xz -C cache/nodejs-security-wg --strip-components=1 67 wget -qO - https://github.com/bitnami/vulndb/archive/main.tar.gz | tar xz -C cache/bitnami-vulndb --strip-components=1 68 wget -qO - https://github.com/github/advisory-database/archive/refs/heads/main.tar.gz | tar xz -C cache/ghsa --strip-components=1 69 ## required to convert GHSA Swift repo links to Cocoapods package names 70 wget -qO - https://github.com/CocoaPods/Specs/archive/master.tar.gz | tar xz -C cache/cocoapods-specs --strip-components=1 71 72 .PHONY: db-build 73 db-build: tunnel-db 74 ./tunnel-db build --cache-dir cache --update-interval 6h 75 76 .PHONY: db-compact 77 db-compact: $(GOBIN)/bbolt cache/db/tunnel.db 78 mkdir -p assets/ 79 $(GOBIN)/bbolt compact -o ./assets/tunnel.db cache/db/tunnel.db 80 cp cache/db/metadata.json ./assets/metadata.json 81 rm -rf cache/db 82 83 .PHONY: db-compress 84 db-compress: assets/tunnel.db assets/metadata.json 85 tar cvzf assets/db.tar.gz -C assets/ tunnel.db metadata.json 86 87 .PHONY: db-clean 88 db-clean: 89 rm -rf cache assets 90 91 .PHONY: db-fetch-vuln-list 92 db-fetch-vuln-list: 93 mkdir -p cache/vuln-list 94 wget -qO - https://github.com/$(REPO_OWNER)/vuln-list/archive/main.tar.gz | tar xz -C cache/vuln-list --strip-components=1 95 mkdir -p cache/vuln-list-redhat 96 wget -qO - https://github.com/$(REPO_OWNER)/vuln-list-redhat/archive/main.tar.gz | tar xz -C cache/vuln-list-redhat --strip-components=1 97 mkdir -p cache/vuln-list-debian 98 wget -qO - https://github.com/$(REPO_OWNER)/vuln-list-debian/archive/main.tar.gz | tar xz -C cache/vuln-list-debian --strip-components=1 99 mkdir -p cache/vuln-list-nvd 100 wget -qO - https://github.com/$(REPO_OWNER)/vuln-list-nvd/archive/main.tar.gz | tar xz -C cache/vuln-list-nvd --strip-components=1 101 mkdir -p cache/vuln-list-k8s 102 wget -qO - https://github.com/$(REPO_OWNER)/vuln-list-k8s/archive/main.tar.gz | tar xz -C cache/vuln-list-k8s --strip-components=1