X-Git-Url: https://git.immae.eu/?p=github%2Fshaarli%2FShaarli.git;a=blobdiff_plain;f=Makefile;h=b758d1fd276e91fd523b3b1410c89341a6ed906a;hp=4adbdd680a076171275de07d9f6bdafa22216e18;hb=1004742f09b55ff781c13745781b9a7e90986faa;hpb=8f816d8ddfe9219e15580cef6e5c9037d1d4fd28 diff --git a/Makefile b/Makefile index 4adbdd68..b758d1fd 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,6 @@ # Makefile for PHP code analysis & testing, documentation and release generation BIN = vendor/bin -PHP_SOURCE = index.php application tests plugins -PHP_COMMA_SOURCE = index.php,application,tests,plugins all: static_analysis_summary check_permissions test @@ -17,14 +15,6 @@ docker_%: rsync -az /shaarli/ ~/shaarli/ cd ~/shaarli && make $* -## -# Concise status of the project -# These targets are non-blocking: || exit 0 -## - -static_analysis_summary: code_sniffer_source copy_paste mess_detector_summary - @echo - ## # PHP_CodeSniffer # Detects PHP syntax errors @@ -32,70 +22,26 @@ static_analysis_summary: code_sniffer_source copy_paste mess_detector_summary # - http://pear.php.net/manual/en/package.php.php-codesniffer.usage.php # - http://pear.php.net/manual/en/package.php.php-codesniffer.reporting.php ## +PHPCS := $(BIN)/phpcs -code_sniffer: code_sniffer_full +code_sniffer: + @$(PHPCS) ### - errors filtered by coding standard: PEAR, PSR1, PSR2, Zend... PHPCS_%: - @$(BIN)/phpcs $(PHP_SOURCE) --report-full --report-width=200 --standard=$* + @$(PHPCS) --report-full --report-width=200 --standard=$* ### - errors by Git author code_sniffer_blame: - @$(BIN)/phpcs $(PHP_SOURCE) --report-gitblame + @$(PHPCS) --report-gitblame ### - all errors/warnings code_sniffer_full: - @$(BIN)/phpcs $(PHP_SOURCE) --report-full --report-width=200 + @$(PHPCS) --report-full --report-width=200 ### - errors grouped by kind code_sniffer_source: - @$(BIN)/phpcs $(PHP_SOURCE) --report-source || exit 0 - -## -# PHP Copy/Paste Detector -# Detects code redundancy -# Documentation: https://github.com/sebastianbergmann/phpcpd -## - -copy_paste: - @echo "-----------------------" - @echo "PHP COPY/PASTE DETECTOR" - @echo "-----------------------" - @$(BIN)/phpcpd $(PHP_SOURCE) || exit 0 - @echo - -## -# PHP Mess Detector -# Detects PHP syntax errors, sorted by category -# Rules documentation: http://phpmd.org/rules/index.html -## -MESS_DETECTOR_RULES = cleancode,codesize,controversial,design,naming,unusedcode - -mess_title: - @echo "-----------------" - @echo "PHP MESS DETECTOR" - @echo "-----------------" - -### - all warnings -mess_detector: mess_title - @$(BIN)/phpmd $(PHP_COMMA_SOURCE) text $(MESS_DETECTOR_RULES) | sed 's_.*\/__' - -### - all warnings + HTML output contains links to PHPMD's documentation -mess_detector_html: - @$(BIN)/phpmd $(PHP_COMMA_SOURCE) html $(MESS_DETECTOR_RULES) \ - --reportfile phpmd.html || exit 0 - -### - warnings grouped by message, sorted by descending frequency order -mess_detector_grouped: mess_title - @$(BIN)/phpmd $(PHP_SOURCE) text $(MESS_DETECTOR_RULES) \ - | cut -f 2 | sort | uniq -c | sort -nr - -### - summary: number of warnings by rule set -mess_detector_summary: mess_title - @for rule in $$(echo $(MESS_DETECTOR_RULES) | tr ',' ' '); do \ - warnings=$$($(BIN)/phpmd $(PHP_COMMA_SOURCE) text $$rule | wc -l); \ - printf "$$warnings\t$$rule\n"; \ - done; + @$(PHPCS) --report-source || exit 0 ## # Checks source file & script permissions @@ -170,6 +116,7 @@ release_tar: composer_dependencies htmldoc translate build_frontend git archive --prefix=$(ARCHIVE_PREFIX) -o $(ARCHIVE_VERSION).tar HEAD tar rvf $(ARCHIVE_VERSION).tar --transform "s|^vendor|$(ARCHIVE_PREFIX)vendor|" vendor/ tar rvf $(ARCHIVE_VERSION).tar --transform "s|^doc/html|$(ARCHIVE_PREFIX)doc/html|" doc/html/ + tar rvf $(ARCHIVE_VERSION).tar --transform "s|^tpl|$(ARCHIVE_PREFIX)tpl|" tpl/ gzip $(ARCHIVE_VERSION).tar ### generate a release zip and include 3rd-party dependencies and translations @@ -180,6 +127,8 @@ release_zip: composer_dependencies htmldoc translate build_frontend zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)doc/ rsync -a vendor/ $(ARCHIVE_PREFIX)vendor/ zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)vendor/ + rsync -a tpl/ $(ARCHIVE_PREFIX)tpl/ + zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)tpl/ rm -rf $(ARCHIVE_PREFIX) ## @@ -207,7 +156,7 @@ htmldoc: python3 -m venv venv/ bash -c 'source venv/bin/activate; \ pip install mkdocs; \ - mkdocs build' + mkdocs build --clean' find doc/html/ -type f -exec chmod a-x '{}' \; rm -r venv