diff --git a/Makefile b/Makefile index 4ac10263..c638b6fc 100644 --- a/Makefile +++ b/Makefile @@ -180,7 +180,7 @@ update-qt-docs: go get github.com/therecipe/qt/internal/binding/files/docs/$(QT_API) ## Dev dependencies -.PHONY: install-devel-tools install-linter install-go-mod-outdated +.PHONY: install-devel-tools install-linter install-go-mod-outdated install-git-hooks LINTVER:="v1.29.0" LINTSRC:="https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh" @@ -197,6 +197,9 @@ install-linter: check-has-go install-go-mod-outdated: which go-mod-outdated || go get -u github.com/psampaz/go-mod-outdated +install-git-hooks: + cp utils/githooks/* .git/hooks/ + chmod +x .git/hooks/* ## Checks, mocks and docs .PHONY: check-has-go add-license change-copyright-year test bench coverage mocks lint-license lint-golang lint updates doc release-notes diff --git a/utils/githooks/pre-push b/utils/githooks/pre-push new file mode 100644 index 00000000..5d701387 --- /dev/null +++ b/utils/githooks/pre-push @@ -0,0 +1,37 @@ +#!/bin/sh + +# Copyright (c) 2021 Proton Technologies AG +# +# This file is part of ProtonMail Bridge. +# +# ProtonMail Bridge is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ProtonMail Bridge is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with ProtonMail Bridge. If not, see . + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# + +make lint +exit $?