weblocal        = $(HOME)/@/adzapper.sf/html
#webremote       = adzapper.sourceforge.net:adzapper/htdocs
webremote       = web.sourceforge.net:htdocs
dateptn	= [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
patterns        = rc/patterns

_help:
  @echo _scripts: make scripts/squid_redirect $(HOME)/bin/squid_redirect
  @echo _release: commit current state as new release.
  @echo _publish: push latest release to web site.
  @echo _syncsf: push current web site content to SourceForge

_scripts: scripts/squid_redirect $(HOME)/bin/squid_redirect \
        $(HOME)/bin-cs/testpageurls $(HOME)/bin-cs/testzap

_sync:
	:make _scripts

_all:	_scripts _oldzaps

_syncsf:
        rsync -e ssh -avH $(weblocal)/ $(webremote)/

# mark the tip as a new release
_release:
        cs-release add

_pending:
        cs-release log
        hg status | grep '^[^?]'; :

_publish:
        :make scripts/squid_redirect
        set -uex \
        lastrel=`cs-release last` \
        tmpdir=`mkdirn $$TMPDIR/adzap` \
        hg archive -r "release-$$lastrel" -t files "$$tmpdir/adzap-$$lastrel" \
        ( set -ue \
          cd "$$tmpdir" \
          tar czf $(weblocal)/adzap-$$lastrel.tar.gz adzap-$$lastrel \
          rm -f $(weblocal)/adzap.tar.gz \
          ln -s adzap-$$lastrel.tar.gz $(weblocal)/adzap.tar.gz \
        ) \
        rm -rf "$$tmpdir" \
	bsed "/TARBALL-LINE/s/adzap-$(dateptn)/adzap-$$lastrel/g" index.html \
        hg commit -m "Update release tarball to adzap-$$lastrel." index.html
        :make $(weblocal)/index.html $(weblocal)/CHANGELOG.txt $(weblocal)/scripts/squid_redirect
        :make _syncsf

_update_patterns:
        needhost -v $$HOMEHOST@home
        set -ue \
        umask 22 \
        necho "Addresses to CC? " \
        read addrs \
        bugcc "$$addrs" hgedit $(patterns) \
        bugcc "$$addrs" myke _scripts

$(weblocal)/index.html: index.html
        rewriteif $@ <$?

$(weblocal)/CHANGELOG.txt: _always
        >>$@ \
        lastrel=`cs-release last` \
        rewriteif $@ hglog -r "release-$$lastrel:0"

$(weblocal)/scripts/squid_redirect: scripts/squid_redirect
        rewriteif $@ <$?

_freshmeat:
        :make _publish
        cs-release freshmeat-submit

scripts/squid_redirect: $(patterns) $@-nodata
        set -uex \
        when=`date` \
        change=`hg log -l 1 --template='{desc|firstline}\n' $(patterns)` \
        lastrel=`cs-release last` \
	( echo "##" \
          echo "## Last updated $$when ($$change)." \
          echo "##" \
          cat $(patterns) \
	) \\
	| rlr -f '^__DATA__' \\
		  -t '^### END AUTO __DATA__ AREA' \\
		  -i '$@-nodata' \\
		  -o '$@' \\
		  - \
        bsed "s^# Release: .*# Release: $$lastrel -> $$when ($$change)" $@

$(HOME)/bin/squid_redirect: scripts/$(@F)
	rewriteif <$? $@

$(HOME)/bin-cs/%: scripts/%
	rewriteif <$? $@

_oldzaps:
	rsync -avH --delete zaps/. $(HOME)/@/ezos/html/cs/adzap/zaps/. & \
	wait

_always:
	:make
