You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.3 KiB

LINTBIN := $(shell go env GOPATH)/bin/golangci-lint
BUILD_DATE := $(shell date +'%FT%T%:z')
COMMIT_SHA := $(shell git rev-parse --short=11 HEAD)
build: clobber .bin/client/public .bin/gopherhole
dev: clean .bin/gopherhole
GOPHERHOLE_UPSTREAM="1.1.1.1:53" \
GOPHERHOLE_MIN_TTL="60s" \
.bin/gopherhole -dns-address=:15353 -http-address=:8000 -db-path=.bin/
client-dev:
docker run -it --rm --name='client-dev' \
--workdir /opt/client \
-v $$PWD/client:/opt/client \
--entrypoint ash \
--user $${UID}:$${GID} \
--memory=4g \
-p 5000:5000 \
node:lts-alpine -c 'npm i && npm run dev'
clean:
@rm -rf .bin/gopherhole .bin/client
clobber: clean
@rm -rf .bin ./client/node_modules ./client/public/build
vdhsn/gopherhole:
docker build \
--label="org.opencontainers.image.created=$(BUILD_DATE)" \
--label="org.opencontainers.image.source=https://github.com/adamveld12/gopherhole.git" \
--label="org.opencontainers.image.url=https://github.com/adamveld12/gopherhole" \
--label="org.opencontainers.image.revision=$(COMMIT_SHA)" \
--label="org.opencontainers.image.licenses=MIT" \
--label="org.opencontainers.image.authors=Adam Veldhousen <adam@vdhsn.com>" \
-t vdhsn/gopherhole:$(COMMIT_SHA) \
-t vdhsn/gopherhole:latest .
test:
dig -p 15353 twitter.com @localhost
dig -p 15353 google.com @localhost
dig -p 15353 loki.veldhousen.ninja @localhost
dig -p 15353 www.liveauctioneers.com @localhost
lint: tidy
# lint: $(LINTBIN) tidy
# golangci-lint run -p bugs \
# -p performance \
# -p unused \
# -p complexity \
# --sort-results \
# --max-same-issues 5 \
# --no-config \
# --verbose \
# --timeout 30s \
# --concurrency 4 \
# --issues-exit-code 1
tidy:
go mod tidy
.PHONY: build clean clobber client-dev dev lint tidy test vdhsn/gopherhole
.bin:
mkdir -p .bin
.bin/gopherhole: .bin
@go build --tags "fts5" -v -o .bin/gopherhole .
.bin/client/public: .bin client/public/build
mkdir -p .bin/client/public
cp -R ./client/public/ .bin/client/
client/public/build: client/node_modules
cd ./client && npm run build
client/node_modules:
cd ./client && npm install
$(LINTBIN):
echo "installing golangci-lint to $(LINTBIN)..."
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(shell go env GOPATH)/bin latest
chmod +x $(LINTBIN)