Merge branch 'master' of git.onelab.eu:/git/nodeconfig
[nodeconfig.git] / Makefile
1 #
2 # how to push a working directoy to a running plc
3 #
4
5 tags:
6         find . -type f | grep -v '/\.svn/' | egrep -v '/(uudecode.gz|tags|TAGS)$$' | xargs etags
7
8 .PHONY: tags
9
10 ########## make sync 
11 # 2 forms are supported
12 # (*) if your plc root context has direct ssh access:
13 # make sync PLC=private.one-lab.org
14 # (*) otherwise, for test deployments, use on your testmaster
15 # $ run export
16 # and cut'n paste the export lines before you run make sync
17
18 ifdef PLC
19 SSHURL:=root@$(PLC):/
20 SSHCOMMAND:=ssh root@$(PLC)
21 else
22 ifdef PLCHOSTLXC
23 SSHURL:=root@$(PLCHOSTLXC):/var/lib/lxc/$(GUESTNAME)/rootfs
24 SSHCOMMAND:=ssh root@$(PLCHOSTLXC) ssh $(GUESTHOSTNAME)
25 else
26 ifdef PLCHOSTVS
27 SSHURL:=root@$(PLCHOSTVS):/vservers/$(GUESTNAME)
28 SSHCOMMAND:=ssh root@$(PLCHOSTVS) vserver $(GUESTNAME) exec
29 endif
30 endif
31 endif
32
33
34 LOCAL_RSYNC_EXCLUDES    := --exclude '*.pyc' 
35 RSYNC_EXCLUDES          := --exclude .svn --exclude CVS --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
36 RSYNC_COND_DRY_RUN      := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
37 RSYNC                   := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
38
39 sync:
40 ifeq (,$(SSHURL))
41         @echo "sync: I need more info from the command line, e.g."
42         @echo "  make sync PLC=boot.planetlab.eu"
43         @echo "  make sync PLCHOSTVS=.. GUESTNAME=.."
44         @echo "  make sync PLCHOSTLXC=.. GUESTNAME=.. GUESTHOSTNAME=.."
45         @exit 1
46 else
47         +$(RSYNC) PlanetLabConf boot PLCAPI $(SSHURL)/var/www/html/
48         $(SSHCOMMAND) apachectl graceful
49 endif
50