chiark / gitweb /
Change default user for git-daemon to userv-git and default user for dyndns to userv...
[userv-utils.git] / git-daemon / Makefile
index 07969cd014346335d7f5a1ef4e6605c8691f5cf7..22407c73d99d216a39d65f0f0caa2c164de89258 100644 (file)
@@ -1,28 +1,60 @@
 # Makefile for userv-git-daemon
 #
-# This was written by Tony Finch <dot@dotat.at>
+# This was written by Tony Finch <dot@dotat.at> and subsequently
+# heavily modified by Ian Jackson <ijackson@chiark.greenend.org.uk>
 # You may do anything with it, at your own risk.
 # http://creativecommons.org/publicdomain/zero/1.0/
 
 include ../settings.make
 
-TARGETS=       git-upload-pack inetd.conf
+gituser=       userv-git
+varloggit=     $(varlog)/git
 
-SUBSTVARS=     libuserv etcuserv
-SEDSCRIPT=     '$(foreach f, $(SUBSTVARS), s,@$f@,$($f),g; )'
+TARGETS=       git-upload-pack inetd.conf git-daemon git-service logrotate
+
+SUBSTVARS=     libuserv etcuserv varloggit gituser
+
+CONFIGS=       $(services)/git-upload-pack \
+               $(etcuserv)/git-urlmap \
+               $(etcdir)/logrotate.d/userv-git-daemon
 
 all:           $(TARGETS)
 
-%:             %.in
-               sed $(SEDSCRIPT) <$< >$@.new && mv -f $@.new $@
+sedscript:     Makefile read-urlmap
+               echo >$@.new '$(foreach f, $(SUBSTVARS), s,@$f@,$($f),g; )'
+               echo >>$@.new '/@@READ_URLMAP@@/c\'
+               perl >>$@.new -pe 's/\\/\\\\/g; s/$$/\\/' <read-urlmap
+               mv -f $@.new $@
+
+%:             %.in sedscript
+               set -e; \
+               sed -f sedscript <$< >$@.new; \
+               if test -x $<; then chmod +x $@.new; fi; \
+               mv -f $@.new $@
 
 install:       all
-               mkdir -p $(libuserv) $(etcuserv) $(services)
+               mkdir -p $(libuserv) $(etcuserv) $(services) \
+                       $(etcdir)/logrotate.d
+               install -d -o $(gituser) -g adm $(varloggit)
                cp git-daemon git-service $(libuserv)
-               cp git-upload-pack $(services)
-               cp git-urlmap $(etcuserv)
+               cp git-upload-pack $(services)/git-upload-pack:new
+               cp git-urlmap $(etcuserv)/git-urlmap:new
+               cp logrotate $(etcdir)/logrotate.d/userv-git-daemon:new
+               set -e; for f in $(CONFIGS); do \
+                       if test -f $$f; then continue; fi; \
+                       mv $$f:new $$f; \
+               done
+
+mkdocdir:
+               mkdir -p $(docdir)/userv-git-daemon
+
+install-docs:  mkdocdir
+               cp README $(docdir)/userv-git-daemon/README
+
+install-examples: all mkdocdir
+               cp inetd.conf $(docdir)/userv-git-daemon/inetd.conf
 
-clean:
-               rm -f $(TARGETS)
+distclean clean:
+               rm -f $(TARGETS) *~
 
 # end