new make sync for vs or lxc
[myplc.git] / Makefile
1 ##########
2 tags:
3         find . -type f | egrep -v '\.git/|~$$' | xargs etags
4
5 .PHONY: tags
6
7 ########## sync
8 # 2 forms are supported
9 # (*) if your plc root context has direct ssh access:
10 # make sync PLC=private.one-lab.org
11 # (*) otherwise, for test deployments, use on your testmaster
12 # $ run export
13 # and cut'n paste the export lines before you run make sync
14
15 PLCHOST ?= testplc.onelab.eu
16
17 ifdef PLC
18 SSHURL:=root@$(PLC):/
19 SSHCOMMAND:=ssh root@$(PLC)
20 else
21 ifdef PLCHOSTLXC
22 SSHURL:=root@$(PLCHOST):/var/lib/lxc/$(GUESTNAME)/rootfs
23 SSHCOMMAND:=ssh root@$(PLCHOSTLXC) ssh $(GUESTHOSTNAME)
24 else
25 ifdef PLCHOSTVS
26 SSHURL:=root@$(PLCHOSTVS):/vservers/$(GUESTNAME)
27 SSHCOMMAND:=ssh root@$(PLCHOSTVS) vserver $(GUESTNAME) exec
28 endif
29 endif
30 endif
31
32 LOCAL_RSYNC_EXCLUDES    := --exclude '*.pyc' 
33 RSYNC_EXCLUDES          := --exclude .svn --exclude CVS --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
34 RSYNC_COND_DRY_RUN      := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
35 RSYNC                   := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
36
37 sync:
38 ifeq (,$(SSHURL))
39         @echo "sync: I need more info from the command line, e.g."
40         @echo "  make sync PLC=boot.planetlab.eu"
41         @echo "  make sync PLCHOSTVS=.. GUESTNAME=.."
42         @echo "  make sync PLCHOSTLXC=.. GUESTNAME=.. GUESTHOSTNAME=.."
43         @exit 1
44 else
45         +$(RSYNC) plc.init $(SSHURL)/etc/init.d/plc
46         +$(RSYNC) bin/ $(SSHURL)/usr/bin/
47         +$(RSYNC) plc.d/ $(SSHURL)/etc/plc.d/
48         +$(RSYNC) db-config.d/ $(SSHURL)/etc/planetlab/db-config.d/
49         +$(RSYNC) plc_config.py $(SSHURL)/usr/lib/python2.\*/site-packages/plc_config.py
50         +$(RSYNC) default_config.xml $(SSHURL)/etc/planetlab/default_config.xml
51         @echo XXXXXXXX you might need to run ssh root@$(PLC) service plc start 
52 endif
53
54 #################### convenience, for debugging only
55 # make +foo : prints the value of $(foo)
56 # make ++foo : idem but verbose, i.e. foo=$(foo)
57 ++%: varname=$(subst +,,$@)
58 ++%:
59         @echo "$(varname)=$($(varname))"
60 +%: varname=$(subst +,,$@)
61 +%:
62         @echo "$($(varname))"
63