
#
# Makefile for babackup
#
# Sigh, this should almost certaly use hatch or setuptools or
# something pythonic, but their setup for scripts is... not obvious.
#

all:

# DESTDIR and PREFIX can be tweaked in the make install command line
DESTDIR=
PREFIX=/usr
SBIN=sbin

.PHONY: all install install_client install_server install_dirs install_docs

install: install_client install_server install_dirs install_docs

install_client:
	-mkdir -p  $(DESTDIR)$(PREFIX)/bin
	cp babackup $(DESTDIR)$(PREFIX)/bin
	chmod 0755 $(DESTDIR)$(PREFIX)/bin/babackup

install_server:
	-mkdir -p  $(DESTDIR)$(PREFIX)/$(SBIN)
	cp babackup_server $(DESTDIR)$(PREFIX)/$(SBIN)
	chmod 0755 $(DESTDIR)$(PREFIX)/$(SBIN)/babackup_server

install_docs:
	-mkdir -p $(DESTDIR)$(PREFIX)/share/doc/babackup
	cp README.md $(DESTDIR)$(PREFIX)/share/doc/babackup

install_dirs:
	mkdir --mode='u=rwx,go=rx' -p $(DESTDIR)$(PREFIX)/../etc/babackup
	mkdir --mode='u=rwx,go=rx' -p $(DESTDIR)$(PREFIX)/../var/lib/babackup

test:
	-mkdir -p TEST
	python3 test.py

VERSION: babackup
	<$< grep __version__ | sed -e 's/^.*= //' -e "s/'//g" >$@

VERSION=$(shell cat VERSION)

babackup.spec: babackup.spec.in VERSION
	< babackup.spec.in sed 's/^Version: .*$$/Version: '$(VERSION)'/' >babackup.spec

.PHONY: dist

dist: babackup.spec
	ln -s . babackup-$(VERSION)
	tar czvf babackup-$(VERSION).tar.gz \
		babackup-$(VERSION)/README.md babackup-$(VERSION)/LICENSE \
		babackup-$(VERSION)/VERSION \
		babackup-$(VERSION)/babackup \
		babackup-$(VERSION)/babackup_server \
		babackup-$(VERSION)/babackup.spec \
		babackup-$(VERSION)/babackup.spec.in \
		babackup-$(VERSION)/Makefile \
		babackup-$(VERSION)/test.py \
		babackup-$(VERSION)/SAMPLE_DATA/sample_base/sample.txt
	rm babackup-$(VERSION)

RPM_DIST=$(shell rpm --eval '%{dist}')

rpms: babackup.spec
	@echo "You should have done: \"make dist\""
	cp babackup-$(VERSION).tar.gz $$HOME/rpmbuild/SOURCES
	cp babackup.spec $$HOME/rpmbuild/SPECS
	( cd $$HOME/rpmbuild; rpmbuild -ba SPECS/babackup.spec; )
	cp $$HOME/rpmbuild/SRPMS/babackup-$(VERSION)-1$(RPM_DIST).src.rpm .
	cp $$HOME/rpmbuild/RPMS/noarch/babackup-$(VERSION)-1$(RPM_DIST).noarch.rpm .

RPM_DIST=$(shell rpm --eval '%{dist}')
WEBDIR=/home/johnh/WORKING/ANT/WWW/ant_2015/software/babackup

release:
	@echo "You should have done (version in babackup); \"make dist; make rpms; make release\""
	cp babackup-$(VERSION)-1$(RPM_DIST).noarch.rpm $(WEBDIR)
	cp babackup-$(VERSION)-1$(RPM_DIST).src.rpm $(WEBDIR)
	cp babackup-$(VERSION).tar.gz $(WEBDIR)
	mv  babackup-$(VERSION)-1$(RPM_DIST).noarch.rpm babackup-$(VERSION)-1$(RPM_DIST).src.rpm   babackup-$(VERSION).tar.gz RELEASES
	@echo "to finish: git commit -am $(VERSION)-release; git tag -s -u 0x4c6cd6f2 -m $(VERSION)-release babackup-$(VERSION); git push; cd $(WEBDIR); git add babackup-$(VERSION)*.rpm babackup-$(VERSION).tar.gz; git commit -am \"release babackup-$(VERSION)\""
