X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=Makefile;h=e6f428531f16f7511e5b0b9a9e32489c0718b1c2;hb=caee7ff9ccc302f85bd08714636e0be08fbd7cc4;hp=e17c8628ac28d57c8323f035edf41f02c428e37e;hpb=3ef1da28e8cc5afcfe58be067e7e60528ce72f1a;p=github%2Fshaarli%2FShaarli.git diff --git a/Makefile b/Makefile index e17c8628..e6f42853 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,6 @@ # Shaarli, the personal, minimalist, super-fast, no-database delicious clone. -# # Makefile for PHP code analysis & testing -# + # Prerequisites: # - install Composer, either: # - from your distro's package manager; @@ -9,6 +8,7 @@ # - install/update test dependencies: # $ composer install # 1st setup # $ composer update + BIN = vendor/bin PHP_SOURCE = index.php MESS_DETECTOR_RULES = cleancode,codesize,controversial,design,naming,unusedcode @@ -17,41 +17,39 @@ all: static_analysis_summary ## # Concise status of the project -# # These targets are non-blocking: || exit 0 ## + static_analysis_summary: code_sniffer_source copy_paste mess_detector_summary ## # PHP_CodeSniffer -# # Detects PHP syntax errors -# # Documentation (usage, output formatting): # - http://pear.php.net/manual/en/package.php.php-codesniffer.usage.php # - http://pear.php.net/manual/en/package.php.php-codesniffer.reporting.php ## + code_sniffer: code_sniffer_full -# - errors by Git author +### - errors by Git author code_sniffer_blame: @$(BIN)/phpcs $(PHP_SOURCE) --report-gitblame -# - all errors/warnings +### - all errors/warnings code_sniffer_full: @$(BIN)/phpcs $(PHP_SOURCE) --report-full --report-width=200 -# - errors grouped by kind +### - 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" @@ -61,34 +59,52 @@ copy_paste: ## # PHP Mess Detector -# # Detects PHP syntax errors, sorted by category -# # Rules documentation: http://phpmd.org/rules/index.html -# +## + mess_title: @echo "-----------------" @echo "PHP MESS DETECTOR" @echo "-----------------" -# - all warnings +### - all warnings mess_detector: mess_title @$(BIN)/phpmd $(PHP_SOURCE) text $(MESS_DETECTOR_RULES) | sed 's_.*\/__' -# - all warnings -# the generated HTML contains links to PHPMD's documentation +### - all warnings + HTML output contains links to PHPMD's documentation mess_detector_html: @$(BIN)/phpmd $(PHP_SOURCE) html $(MESS_DETECTOR_RULES) \ --reportfile phpmd.html || exit 0 -# - warnings grouped by message, sorted by descending frequency order +### - 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 +### - 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_SOURCE) text $$rule | wc -l); \ printf "$$warnings\t$$rule\n"; \ done; + +## +# Targets for repository and documentation maintenance +## + +### remove all unversioned files +clean: + @git clean -df + +### update the local copy of the documentation +doc: clean + @rm -rf doc + @git clone https://github.com/shaarli/Shaarli.wiki.git doc + @rm -rf doc/.git + +### Convert local markdown documentation to HTML +htmldoc: + for file in `find doc/ -maxdepth 1 -name "*.md"`; do \ + pandoc -f markdown_github -t html5 -s -c "github-markdown.css" -o doc/`basename $$file .md`.html "$$file"; \ + done; \ No newline at end of file