X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=Makefile;h=47f3530f2048976f1c7701a553c33095e6c13e2a;hb=refs%2Fheads%2Fv0.8;hp=52d200908e6c3a52190f5a1345b72723de7540d8;hpb=2795cf5e1cbe06af418c8a9f57b2c368ac0533ae;p=github%2Fshaarli%2FShaarli.git diff --git a/Makefile b/Makefile index 52d20090..47f3530f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # The personal, minimalist, super-fast, database free, bookmarking service. -# Makefile for PHP code analysis & testing +# Makefile for PHP code analysis & testing, documentation and release generation # Prerequisites: # - install Composer, either: @@ -11,6 +11,7 @@ # - install Xdebug for PHPUnit code coverage reports: # - see http://xdebug.org/docs/install # - enable in php.ini +SHELL := /bin/bash BIN = vendor/bin PHP_SOURCE = index.php application tests plugins @@ -127,6 +128,39 @@ test: @mkdir -p sandbox @$(BIN)/phpunit tests +## +# Custom release archive generation +# +# For each tagged revision, GitHub provides tar and zip archives that correspond +# to the output of git-archive +# +# These targets produce similar archives, featuring 3rd-party dependencies +# to ease deployment on shared hosting. +## +ARCHIVE_VERSION := shaarli-$$(git describe)-full +ARCHIVE_PREFIX=Shaarli/ + +release_archive: release_tar release_zip + +### download 3rd-party PHP libraries +composer_dependencies: clean + composer update --no-dev + find vendor/ -name ".git" -type d -exec rm -rf {} + + +### generate a release tarball and include 3rd-party dependencies +release_tar: composer_dependencies + git archive --prefix=$(ARCHIVE_PREFIX) -o $(ARCHIVE_VERSION).tar HEAD + tar rvf $(ARCHIVE_VERSION).tar --transform "s|^vendor|$(ARCHIVE_PREFIX)vendor|" vendor/ + gzip $(ARCHIVE_VERSION).tar + +### generate a release zip and include 3rd-party dependencies +release_zip: composer_dependencies + git archive --prefix=$(ARCHIVE_PREFIX) -o $(ARCHIVE_VERSION).zip -9 HEAD + mkdir $(ARCHIVE_PREFIX) + rsync -a vendor/ $(ARCHIVE_PREFIX)vendor/ + zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)vendor/ + rm -rf $(ARCHIVE_PREFIX) + ## # Targets for repository and documentation maintenance ## @@ -170,14 +204,18 @@ htmlsidebar: htmlpages: @for file in `find doc/ -maxdepth 1 -name "*.md"`; do \ base=`basename $$file .md`; \ - sed -i "1i #$${base//-/ }" $$file; \ + sed -i "1i # $${base//-/ }" $$file; \ awk 'BEGIN { FS = "[\\[\\]]{2}" }'\ 'm = /\[/ { t=$$2; gsub(/ /, "-", $$2); print $$1"["t"]("$$2".html)"$$3 }'\ '!m { print $$0 }' $$file > doc/tmp.md; \ mv doc/tmp.md $$file; \ - pandoc -f markdown_github -t html5 -s \ + pandoc -f gfm \ + -t html5 \ + -s \ -c "github-markdown.css" \ - -T Shaarli -M pagetitle:"$${base//-/ }" -B doc/sidebar.html \ + -T Shaarli \ + -M pagetitle:"$${base//-/ }" \ + -B doc/sidebar.html \ -o doc/$$base.html $$file; \ done;