VERSION=$(shell php -r 'include("inc/inc.Version.php"); $$v=new SeedDMS_Version(); echo $$v->version();')
SRC=CHANGELOG inc conf utils index.php .htaccess languages op out controllers doc TODO LICENSE webdav install restapi pdfviewer
VIEWS ?= bootstrap bootstrap4
NODISTFILES=utils/importmail.php utils/seedddms-importmail utils/remote-email-upload utils/remote-upload utils/da-bv-reminder.php utils/seeddms-da-bv-reminder utils/relodge.php utils/seeddms-relodge .svn .gitignore
PHPDOC=~/Downloads/phpDocumentor.phar
dist:
mkdir -p tmp/seeddms-$(VERSION)
cp -a $(SRC) tmp/seeddms-$(VERSION)
mkdir -p tmp/seeddms-$(VERSION)/views
mkdir -p tmp/seeddms-$(VERSION)/styles
for view in $(VIEWS) ; do \
if [ -d "views/$$view" ] ; then \
cp -a views/$$view tmp/seeddms-$(VERSION)/views ; \
fi ; \
if [ -d "styles/$$view" ] ; then \
cp -a styles/$$view tmp/seeddms-$(VERSION)/styles ; \
fi ; \
done
(cd tmp/seeddms-$(VERSION); rm -rf $(NODISTFILES); mv conf conf.template)
(cd tmp; tar --exclude=.svn --exclude=.gitignore -czvf ../seeddms-$(VERSION).tar.gz seeddms-$(VERSION))
rm -rf tmp
quickstart:
vendor/bin/phing -Dversion=$(VERSION) package
unittest:
vendor/bin/phing -Dversion=$(VERSION) phpunitfast
pear:
(cd SeedDMS_Core/; pear package)
(cd SeedDMS_Lucene/; pear package)
(cd SeedDMS_Preview/; pear package)
(cd SeedDMS_SQLiteFTS/; pear package)
webdav:
mkdir -p tmp/seeddms-webdav-$(VERSION)
cp webdav/* tmp/seeddms-webdav-$(VERSION)
(cd tmp; tar --exclude=.svn -czvf ../seeddms-webdav-$(VERSION).tar.gz seeddms-webdav-$(VERSION))
rm -rf tmp
webapp:
mkdir -p tmp/seeddms-webapp-$(VERSION)
cp -a restapi webapp tmp/seeddms-webapp-$(VERSION)
(cd tmp; tar --exclude=.svn -czvf ../seeddms-webapp-$(VERSION).tar.gz seeddms-webapp-$(VERSION))
rm -rf tmp
repository:
mkdir -p tmp/seeddms-repository-$(VERSION)
cp -a repository/www repository/utils repository/doc tmp/seeddms-repository-$(VERSION)
rm -f tmp/seeddms-repository/utils/update-repository.log
mkdir -p tmp/seeddms-repository-$(VERSION)/files
mkdir -p tmp/seeddms-repository-$(VERSION)/accounts
cp -a repository/files/.htaccess tmp/seeddms-repository-$(VERSION)/files
cp -a repository/accounts/.htaccess tmp/seeddms-repository-$(VERSION)/accounts
cp inc/inc.ClassExtensionMgr.php tmp/seeddms-repository-$(VERSION)/utils
(cd tmp; tar --exclude=.svn -czvf ../seeddms-repository-$(VERSION).tar.gz seeddms-repository-$(VERSION))
rm -rf tmp
doc:
$(PHPDOC) -d SeedDMS_Core --ignore 'getusers.php,getfoldertree.php,config.php,reverselookup.php' --force -t html
# Download apigen with
# composer create-project --no-dev apigen/apigen:^7.0@alpha tools/apigen
apidoc:
tools/apigen/bin/apigen SeedDMS_Core/Core --exclude "tests/*" --output html
# Turn the package.xml file into CHANGELOG.md
#
# The idea is to form blocks of lines separated by an empty line.
# Echo block consists of the version number, release date und notes.
# This blocks are turned into single lines which are than sorted.
# Afterwards the single lines are turned back into blocks.
#
# It first uses sgrep to extract the version, date und notes. This is
# feed to sed to isolated the date and version and put them on separate
# lines. Each version
# forms a block of n lines with the first two being the version and date.
# All remaining lines are notes. Blocks are separated by an empty line.
# It's important to form blocks without ane empty lines because the following
# awk will create a single line from each block which can then be sorted
# (or simply reversed in order).
# Because the blocks are listed in the wrong order (last version first and
# previous version last, e.g. 5.1.29, 3.3.0, 3.3.1, ...., 5.1.27, 5.1.28) they
# need to be reversed in order. This is done by turning each block into line
# with the former new lines replaced by a '|'. So it's basically a '|' separated
# csv file which is then reversed in order by 'sort -r'. In order to separate
# blocks by a newline, each line of that output is appended by another
# line break. Result is put back
# into the original format by replacing all '|' by newline.
#
PKGFILE=SeedDMS_Core/package.xml
changelog:
@sgrep 'stag("DATE") .. etag("DATE") or ((stag("RELEASE") .. etag("RELEASE")) in (stag("VERSION") .. etag("VERSION"))) or inner(stag("NOTES") __ etag("NOTES"))' ${PKGFILE} | sed -e 's#^ *\([-0-9]*\)\([0-9.preRC]*\)#\n\n\2 (\1)\n---------------------#' | awk -F'\n' -vRS='' -vOFS='|' '{$$1=$$1}1' | sort -V -r | sed 's/$$/\n/' | tr '|' '\n'
.PHONY: doc webdav webapp repository changelog