2018-09-05 18:26:03 +00:00
|
|
|
export GO111MODULE=on
|
2018-10-31 06:14:33 +00:00
|
|
|
GOIMPORTS=goimports
|
2018-09-05 18:26:03 +00:00
|
|
|
BINARY_NAME=photoprism
|
2018-11-08 09:56:11 +00:00
|
|
|
DOCKER_TAG=`date -u +%Y%m%d`
|
2018-09-05 18:26:03 +00:00
|
|
|
|
2019-06-03 14:31:15 +00:00
|
|
|
HASRICHGO := $(shell which richgo)
|
|
|
|
ifdef HASRICHGO
|
|
|
|
GOTEST=richgo test
|
|
|
|
else
|
|
|
|
GOTEST=go test
|
|
|
|
endif
|
|
|
|
|
2019-05-09 04:18:22 +00:00
|
|
|
all: dep build
|
|
|
|
dep: dep-tensorflow dep-js dep-go
|
2020-01-13 10:08:50 +00:00
|
|
|
build: generate build-js build-go
|
2019-06-05 16:25:20 +00:00
|
|
|
install: install-bin install-assets
|
2019-05-09 04:18:22 +00:00
|
|
|
test: test-js test-go
|
2019-12-05 02:58:54 +00:00
|
|
|
acceptance-all: start acceptance acceptance-firefox stop
|
|
|
|
test-all: test acceptance-all
|
2019-05-09 04:18:22 +00:00
|
|
|
fmt: fmt-js fmt-go
|
2020-01-12 14:39:45 +00:00
|
|
|
upgrade: dep-upgrade-js dep-upgrade
|
2020-01-04 09:10:55 +00:00
|
|
|
clean-local: clean-local-config clean-local-share clean-local-cache
|
|
|
|
clean-install: clean-local dep build-js install-bin install-assets
|
2019-05-09 04:18:22 +00:00
|
|
|
start:
|
2019-06-30 03:38:39 +00:00
|
|
|
go run cmd/photoprism/photoprism.go start -d
|
|
|
|
stop:
|
|
|
|
go run cmd/photoprism/photoprism.go stop
|
2019-09-19 16:22:44 +00:00
|
|
|
terminal:
|
|
|
|
docker-compose exec photoprism bash
|
2019-05-09 04:18:22 +00:00
|
|
|
migrate:
|
|
|
|
go run cmd/photoprism/photoprism.go migrate
|
2020-01-13 10:08:50 +00:00
|
|
|
generate:
|
|
|
|
go generate ./pkg/... ./internal/...
|
|
|
|
go fmt ./pkg/... ./internal/...
|
2018-09-14 10:44:15 +00:00
|
|
|
install-bin:
|
2019-06-29 17:34:55 +00:00
|
|
|
scripts/build.sh prod ~/.local/bin/$(BINARY_NAME)
|
2018-09-14 10:44:15 +00:00
|
|
|
install-assets:
|
2019-12-30 19:10:03 +00:00
|
|
|
$(info Installing assets)
|
2019-06-29 17:34:55 +00:00
|
|
|
mkdir -p ~/.config/photoprism
|
|
|
|
mkdir -p ~/.cache/photoprism
|
|
|
|
mkdir -p ~/Pictures/Originals
|
|
|
|
mkdir -p ~/Pictures/Import
|
|
|
|
mkdir -p ~/.local/share/photoprism/resources/database
|
2019-12-14 14:41:37 +00:00
|
|
|
cp -r assets/resources/static assets/resources/templates assets/resources/nasnet assets/resources/nsfw ~/.local/share/photoprism/resources
|
2019-06-29 17:34:55 +00:00
|
|
|
rsync -a -v --ignore-existing assets/config/*.yml ~/.config/photoprism
|
|
|
|
find ~/.local/share/photoprism -name '.*' -type f -delete
|
2020-01-04 09:10:55 +00:00
|
|
|
clean-local-share:
|
|
|
|
rm -rf ~/.local/share/photoprism
|
|
|
|
clean-local-cache:
|
|
|
|
rm -rf ~/.cache/photoprism
|
|
|
|
clean-local-config:
|
|
|
|
rm -f ~/.config/photoprism/*
|
2019-05-09 04:18:22 +00:00
|
|
|
dep-js:
|
2019-12-18 13:30:39 +00:00
|
|
|
(cd frontend && npm install --silent)
|
2019-05-09 04:18:22 +00:00
|
|
|
dep-go:
|
|
|
|
go build -v ./...
|
2020-01-12 14:39:45 +00:00
|
|
|
dep-upgrade:
|
|
|
|
go get -u -t ./...
|
|
|
|
dep-upgrade-js:
|
|
|
|
(cd frontend && npm --depth 3 update)
|
2019-05-09 04:18:22 +00:00
|
|
|
dep-tensorflow:
|
|
|
|
scripts/download-nasnet.sh
|
2019-12-14 14:41:37 +00:00
|
|
|
scripts/download-nsfw.sh
|
2019-05-16 06:41:16 +00:00
|
|
|
zip-nasnet:
|
2019-06-05 16:25:20 +00:00
|
|
|
(cd assets/resources && zip -r nasnet.zip nasnet -x "*/.*" -x "*/version.txt")
|
2019-12-14 14:41:37 +00:00
|
|
|
zip-nsfw:
|
|
|
|
(cd assets/resources && zip -r nsfw.zip nsfw -x "*/.*" -x "*/version.txt")
|
2019-05-07 15:02:15 +00:00
|
|
|
build-js:
|
|
|
|
(cd frontend && env NODE_ENV=production npm run build)
|
2019-05-09 04:18:22 +00:00
|
|
|
build-go:
|
2019-06-09 02:37:02 +00:00
|
|
|
rm -f $(BINARY_NAME)
|
2019-05-09 04:18:22 +00:00
|
|
|
scripts/build.sh debug $(BINARY_NAME)
|
2019-06-22 21:14:30 +00:00
|
|
|
build-static:
|
|
|
|
rm -f $(BINARY_NAME)
|
|
|
|
scripts/build.sh static $(BINARY_NAME)
|
2020-04-28 09:51:42 +00:00
|
|
|
build-tensorflow:
|
|
|
|
docker build -t photoprism/tensorflow:build docker/tensorflow
|
|
|
|
docker run -ti photoprism/tensorflow:build bash
|
|
|
|
build-tensorflow-arm64:
|
|
|
|
docker build -t photoprism/tensorflow:arm64 docker/tensorflow/arm64
|
|
|
|
docker run -ti photoprism/tensorflow:arm64 bash
|
2019-05-21 00:27:08 +00:00
|
|
|
watch-js:
|
2019-06-06 22:04:34 +00:00
|
|
|
(cd frontend && env NODE_ENV=development npm run watch)
|
2019-05-07 13:41:33 +00:00
|
|
|
test-js:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running JS unit tests...)
|
2019-07-24 08:05:45 +00:00
|
|
|
(cd frontend && env NODE_ENV=development BABEL_ENV=test npm run test)
|
2019-12-05 02:58:54 +00:00
|
|
|
acceptance:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running JS acceptance tests in Chrome...)
|
2019-12-05 02:58:54 +00:00
|
|
|
(cd frontend && npm run acceptance)
|
|
|
|
acceptance-firefox:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running JS acceptance tests in Firefox...)
|
2019-12-05 02:58:54 +00:00
|
|
|
(cd frontend && npm run acceptance-firefox)
|
2019-05-09 04:18:22 +00:00
|
|
|
test-go:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running all Go unit tests...)
|
2020-04-08 11:24:06 +00:00
|
|
|
$(GOTEST) -parallel 1 -count 1 -cpu 1 -tags slow -timeout 20m ./pkg/... ./internal/...
|
2019-06-04 16:26:35 +00:00
|
|
|
test-verbose:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running all Go unit tests in verbose mode...)
|
2020-04-08 11:24:06 +00:00
|
|
|
$(GOTEST) -parallel 1 -count 1 -cpu 1 -tags slow -timeout 20m -v ./pkg/... ./internal/...
|
2019-04-18 18:16:09 +00:00
|
|
|
test-short:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running short Go unit tests in verbose mode...)
|
2020-04-08 11:24:06 +00:00
|
|
|
$(GOTEST) -parallel 1 -count 1 -cpu 1 -short -timeout 5m -v ./pkg/... ./internal/...
|
2018-11-06 15:17:49 +00:00
|
|
|
test-race:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running all Go unit tests with race detection in verbose mode...)
|
2020-04-08 11:24:06 +00:00
|
|
|
$(GOTEST) -tags slow -race -timeout 60m -v ./pkg/... ./internal/...
|
2018-11-06 15:47:17 +00:00
|
|
|
test-codecov:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running all Go unit tests with code coverage report for codecov...)
|
2020-04-08 11:24:06 +00:00
|
|
|
go test -parallel 1 -count 1 -cpu 1 -failfast -tags slow -timeout 30m -coverprofile coverage.txt -covermode atomic -v ./pkg/... ./internal/...
|
2018-11-06 16:49:03 +00:00
|
|
|
scripts/codecov.sh
|
2018-11-06 15:47:17 +00:00
|
|
|
test-coverage:
|
2019-06-03 21:55:01 +00:00
|
|
|
$(info Running all Go unit tests with code coverage report...)
|
2020-04-08 11:24:06 +00:00
|
|
|
go test -parallel 1 -count 1 -cpu 1 -failfast -tags slow -timeout 30m -coverprofile coverage.txt -covermode atomic -v ./pkg/... ./internal/...
|
2018-11-14 22:55:23 +00:00
|
|
|
go tool cover -html=coverage.txt -o coverage.html
|
2018-09-05 18:26:03 +00:00
|
|
|
clean:
|
|
|
|
rm -f $(BINARY_NAME)
|
2019-05-07 14:16:39 +00:00
|
|
|
rm -f *.log
|
|
|
|
rm -rf node_modules
|
2019-05-03 22:53:02 +00:00
|
|
|
rm -rf assets/testdata
|
|
|
|
rm -rf assets/backups
|
2019-05-07 14:16:39 +00:00
|
|
|
rm -rf frontend/node_modules
|
2019-05-03 22:53:02 +00:00
|
|
|
docker-development:
|
|
|
|
scripts/docker-build.sh development $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh development $(DOCKER_TAG)
|
|
|
|
docker-photoprism:
|
2018-11-08 09:56:11 +00:00
|
|
|
scripts/docker-build.sh photoprism $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh photoprism $(DOCKER_TAG)
|
2020-01-19 22:28:59 +00:00
|
|
|
docker-photoprism-arm64:
|
|
|
|
scripts/docker-build.sh photoprism-arm64 $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh photoprism-arm64 $(DOCKER_TAG)
|
2019-05-03 22:53:02 +00:00
|
|
|
docker-demo:
|
2018-12-11 01:00:30 +00:00
|
|
|
scripts/docker-build.sh demo $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh demo $(DOCKER_TAG)
|
2020-03-27 10:01:41 +00:00
|
|
|
docker-webdav:
|
|
|
|
scripts/docker-build.sh webdav $(DOCKER_TAG)
|
|
|
|
scripts/docker-push.sh webdav $(DOCKER_TAG)
|
2019-05-09 04:18:22 +00:00
|
|
|
lint-js:
|
|
|
|
(cd frontend && npm run lint)
|
|
|
|
fmt-js:
|
|
|
|
(cd frontend && npm run fmt)
|
2020-01-17 00:37:06 +00:00
|
|
|
fmt-imports:
|
2020-01-12 13:00:56 +00:00
|
|
|
goimports -w pkg internal cmd
|
2020-01-17 00:37:06 +00:00
|
|
|
fmt-go:
|
2020-01-12 13:00:56 +00:00
|
|
|
go fmt ./pkg/... ./internal/... ./cmd/...
|
2019-04-26 00:22:53 +00:00
|
|
|
tidy:
|
|
|
|
go mod tidy
|