| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 | IMPORT := xorm.io/xormexport GO111MODULE=onGO ?= goGOFMT ?= gofmt -sTAGS ?=SED_INPLACE := sed -iGOFILES := $(shell find . -name "*.go" -type f)INTEGRATION_PACKAGES := xorm.io/xorm/integrationsPACKAGES ?= $(filter-out $(INTEGRATION_PACKAGES),$(shell $(GO) list ./...))TEST_COCKROACH_HOST ?= cockroach:26257TEST_COCKROACH_SCHEMA ?=TEST_COCKROACH_DBNAME ?= xorm_testTEST_COCKROACH_USERNAME ?= postgresTEST_COCKROACH_PASSWORD ?=TEST_MSSQL_HOST ?= mssql:1433TEST_MSSQL_DBNAME ?= giteaTEST_MSSQL_USERNAME ?= saTEST_MSSQL_PASSWORD ?= MwantsaSecurePassword1TEST_MSSQL_DEFAULT_VARCHAR ?= varcharTEST_MSSQL_DEFAULT_CHAR ?= charTEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST ?= trueTEST_MYSQL_HOST ?= mysql:3306TEST_MYSQL_CHARSET ?= utf8TEST_MYSQL_DBNAME ?= xorm_testTEST_MYSQL_USERNAME ?= rootTEST_MYSQL_PASSWORD ?=TEST_PGSQL_HOST ?= pgsql:5432TEST_PGSQL_SCHEMA ?=TEST_PGSQL_DBNAME ?= xorm_testTEST_PGSQL_USERNAME ?= postgresTEST_PGSQL_PASSWORD ?= mysecretpasswordTEST_TIDB_HOST ?= tidb:4000TEST_TIDB_DBNAME ?= xorm_testTEST_TIDB_USERNAME ?= rootTEST_TIDB_PASSWORD ?=TEST_CACHE_ENABLE ?= falseTEST_QUOTE_POLICY ?= always.PHONY: allall: build.PHONY: buildbuild: go-check $(GO_SOURCES)	$(GO) build $(PACKAGES).PHONY: cleanclean:	$(GO) clean -i ./...	rm -rf *.sql *.log test.db *coverage.out coverage.all integrations/*.sql.PHONY: coveragecoverage:	@hash gocovmerge > /dev/null 2>&1; if [ $$? -ne 0 ]; then \		$(GO) get -u github.com/wadey/gocovmerge; \	fi	gocovmerge $(shell find . -type f -name "coverage.out") > coverage.all;\.PHONY: fmtfmt:	$(GOFMT) -w $(GOFILES).PHONY: fmt-checkfmt-check:	# get all go files and run go fmt on them	@diff=$$($(GOFMT) -d $(GOFILES)); \	if [ -n "$$diff" ]; then \		echo "Please run 'make fmt' and commit the result:"; \		echo "$${diff}"; \		exit 1; \	fi;.PHONY: go-checkgo-check:	$(eval GO_VERSION := $(shell printf "%03d%03d%03d" $(shell go version | grep -Eo '[0-9]+\.?[0-9]+?\.?[0-9]?\s' | tr '.' ' ');))	@if [ "$(GO_VERSION)" -lt "001011000" ]; then \		echo "Gitea requires Go 1.11.0 or greater to build. You can get it at https://golang.org/dl/"; \		exit 1; \	fi.PHONY: helphelp:	@echo "Make Routines:"	@echo " -                   equivalent to \"build\""	@echo " - build             creates the entire project"	@echo " - clean             delete integration files and build files but not css and js files"	@echo " - fmt               format the code"	@echo " - lint            	run code linter revive"	@echo " - misspell          check if a word is written wrong"	@echo " - test       		run default unit test"	@echo " - test-cockroach    run integration tests for cockroach"	@echo " - test-mysql        run integration tests for mysql"	@echo " - test-mssql        run integration tests for mssql"	@echo " - test-postgres     run integration tests for postgres"	@echo " - test-sqlite       run integration tests for sqlite"	@echo " - test-tidb         run integration tests for tidb"	@echo " - vet               examines Go source code and reports suspicious constructs".PHONY: lintlint: revive.PHONY: reviverevive:	@hash revive > /dev/null 2>&1; if [ $$? -ne 0 ]; then \		$(GO) get -u github.com/mgechev/revive; \	fi	revive -config .revive.toml -exclude=./vendor/... ./... || exit 1.PHONY: misspellmisspell:	@hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \		$(GO) get -u github.com/client9/misspell/cmd/misspell; \	fi	misspell -w -i unknwon $(GOFILES).PHONY: misspell-checkmisspell-check:	@hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \		$(GO) get -u github.com/client9/misspell/cmd/misspell; \	fi	misspell -error -i unknwon,destory $(GOFILES).PHONY: testtest: go-check	$(GO) test $(PACKAGES).PNONY: test-cockroachtest-cockroach: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -db=postgres -schema='$(TEST_COCKROACH_SCHEMA)' -cache=$(TEST_CACHE_ENABLE) \	-conn_str="postgres://$(TEST_COCKROACH_USERNAME):$(TEST_COCKROACH_PASSWORD)@$(TEST_COCKROACH_HOST)/$(TEST_COCKROACH_DBNAME)?sslmode=disable&experimental_serial_normalization=sql_sequence" \	-ignore_update_limit=true -coverprofile=cockroach.$(TEST_COCKROACH_SCHEMA).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PHONY: test-cockroach\#%test-cockroach\#%: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -run $* -db=postgres -schema='$(TEST_COCKROACH_SCHEMA)' -cache=$(TEST_CACHE_ENABLE) \	-conn_str="postgres://$(TEST_COCKROACH_USERNAME):$(TEST_COCKROACH_PASSWORD)@$(TEST_COCKROACH_HOST)/$(TEST_COCKROACH_DBNAME)?sslmode=disable&experimental_serial_normalization=sql_sequence" \	-ignore_update_limit=true -coverprofile=cockroach.$(TEST_COCKROACH_SCHEMA).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PNONY: test-mssqltest-mssql: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -db=mssql -cache=$(TEST_CACHE_ENABLE) -quote=$(TEST_QUOTE_POLICY) \	-conn_str="server=$(TEST_MSSQL_HOST);user id=$(TEST_MSSQL_USERNAME);password=$(TEST_MSSQL_PASSWORD);database=$(TEST_MSSQL_DBNAME)" \	-default_varchar=$(TEST_MSSQL_DEFAULT_VARCHAR) -default_char=$(TEST_MSSQL_DEFAULT_CHAR) \	-do_nvarchar_override_test=$(TEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST) \	-coverprofile=mssql.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PNONY: test-mssql\#%test-mssql\#%: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -run $* -db=mssql -cache=$(TEST_CACHE_ENABLE) -quote=$(TEST_QUOTE_POLICY) \	-conn_str="server=$(TEST_MSSQL_HOST);user id=$(TEST_MSSQL_USERNAME);password=$(TEST_MSSQL_PASSWORD);database=$(TEST_MSSQL_DBNAME)" \	-default_varchar=$(TEST_MSSQL_DEFAULT_VARCHAR) -default_char=$(TEST_MSSQL_DEFAULT_CHAR) \	-do_nvarchar_override_test=$(TEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST) \	-coverprofile=mssql.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PNONY: test-mymysqltest-mymysql: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -db=mymysql -cache=$(TEST_CACHE_ENABLE) -quote=$(TEST_QUOTE_POLICY) \	-conn_str="tcp:$(TEST_MYSQL_HOST)*$(TEST_MYSQL_DBNAME)/$(TEST_MYSQL_USERNAME)/$(TEST_MYSQL_PASSWORD)" \	-coverprofile=mymysql.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PNONY: test-mymysql\#%test-mymysql\#%: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -run $* -db=mymysql -cache=$(TEST_CACHE_ENABLE) -quote=$(TEST_QUOTE_POLICY) \	-conn_str="tcp:$(TEST_MYSQL_HOST)*$(TEST_MYSQL_DBNAME)/$(TEST_MYSQL_USERNAME)/$(TEST_MYSQL_PASSWORD)" \	-coverprofile=mymysql.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PNONY: test-mysqltest-mysql: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -db=mysql -cache=$(TEST_CACHE_ENABLE) -quote=$(TEST_QUOTE_POLICY) \	-conn_str="$(TEST_MYSQL_USERNAME):$(TEST_MYSQL_PASSWORD)@tcp($(TEST_MYSQL_HOST))/$(TEST_MYSQL_DBNAME)?charset=$(TEST_MYSQL_CHARSET)" \	-coverprofile=mysql.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PHONY: test-mysql\#%test-mysql\#%: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -run $* -db=mysql -cache=$(TEST_CACHE_ENABLE) -quote=$(TEST_QUOTE_POLICY) \	-conn_str="$(TEST_MYSQL_USERNAME):$(TEST_MYSQL_PASSWORD)@tcp($(TEST_MYSQL_HOST))/$(TEST_MYSQL_DBNAME)?charset=$(TEST_MYSQL_CHARSET)" \	-coverprofile=mysql.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PNONY: test-postgrestest-postgres: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -db=postgres -schema='$(TEST_PGSQL_SCHEMA)' -cache=$(TEST_CACHE_ENABLE) \	-conn_str="postgres://$(TEST_PGSQL_USERNAME):$(TEST_PGSQL_PASSWORD)@$(TEST_PGSQL_HOST)/$(TEST_PGSQL_DBNAME)?sslmode=disable" \	-quote=$(TEST_QUOTE_POLICY) -coverprofile=postgres.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PHONY: test-postgres\#%test-postgres\#%: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -run $* -db=postgres -schema='$(TEST_PGSQL_SCHEMA)' -cache=$(TEST_CACHE_ENABLE) \	-conn_str="postgres://$(TEST_PGSQL_USERNAME):$(TEST_PGSQL_PASSWORD)@$(TEST_PGSQL_HOST)/$(TEST_PGSQL_DBNAME)?sslmode=disable" \	-quote=$(TEST_QUOTE_POLICY) -coverprofile=postgres.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PHONY: test-sqlitetest-sqlite: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -cache=$(TEST_CACHE_ENABLE) -db=sqlite3 -conn_str="./test.db?cache=shared&mode=rwc" \	 -quote=$(TEST_QUOTE_POLICY) -coverprofile=sqlite.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PHONY: test-sqlite-schematest-sqlite-schema: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -schema=xorm -cache=$(TEST_CACHE_ENABLE) -db=sqlite3 -conn_str="./test.db?cache=shared&mode=rwc" \	 -quote=$(TEST_QUOTE_POLICY) -coverprofile=sqlite.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PHONY: test-sqlite\#%test-sqlite\#%: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -run $* -cache=$(TEST_CACHE_ENABLE) -db=sqlite3 -conn_str="./test.db?cache=shared&mode=rwc" \	 -quote=$(TEST_QUOTE_POLICY) -coverprofile=sqlite.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PNONY: test-tidbtest-tidb: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -db=mysql -cache=$(TEST_CACHE_ENABLE) -ignore_select_update=true \	-conn_str="$(TEST_TIDB_USERNAME):$(TEST_TIDB_PASSWORD)@tcp($(TEST_TIDB_HOST))/$(TEST_TIDB_DBNAME)" \	-quote=$(TEST_QUOTE_POLICY) -coverprofile=tidb.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PHONY: test-tidb\#%test-tidb\#%: go-check	$(GO) test $(INTEGRATION_PACKAGES) -v -race -run $* -db=mysql -cache=$(TEST_CACHE_ENABLE) -ignore_select_update=true \	-conn_str="$(TEST_TIDB_USERNAME):$(TEST_TIDB_PASSWORD)@tcp($(TEST_TIDB_HOST))/$(TEST_TIDB_DBNAME)" \	-quote=$(TEST_QUOTE_POLICY) -coverprofile=tidb.$(TEST_QUOTE_POLICY).$(TEST_CACHE_ENABLE).coverage.out -covermode=atomic.PHONY: vetvet:	$(GO) vet $(shell $(GO) list ./...)
 |