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