-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
161 lines (132 loc) · 6.53 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#!/usr/bin/make
# $Id$
SHELL=/bin/bash
PREFIX=/usr/local
MANDIR=$(PREFIX)/man
BINDIR=$(PREFIX)/bin
SBINDIR=$(PREFIX)/sbin
CIGRIDIR=$(PREFIX)/share/cigri
DOCDIR=$(PREFIX)/share/doc/cigri
VARDIR=/var/lib/cigri
LOGDIR=/var/log
CIGRICONFDIR=/etc/cigri
WWWDIR=/var/www
WWWUSER=www-data
WWWGROUP=www-data
CIGRIUSER=cigri
CIGRIGROUP=cigri
APIBASE=/cigri-api
PIDDIR=/run/cigri
USERCMDS=$(patsubst bin/%.rb,%,$(wildcard bin/*.rb))
CACERT=/etc/cigri/ssl.orig/cigriCA/certs/cigriCA.crt
CAKEY=/etc/cigri/ssl.orig/cigriCA/private/myca.key
#SPEC_OPTS=--colour --fail-fast -w
SPEC_OPTS=--colour -w
.PHONY: man
all: usage
usage:
@echo "WORK IN PROGRESS..."
@echo "Usage: make < install | rdoc | yard | tests | cov >"
rdoc:
rdoc -o doc/rdoc
yard:
yard -o doc/yard lib modules
spec: tests
rspec: tests
tests: spec/**/*_spec.rb
rspec $? ${SPEC_OPTS}
install:
@echo "Please, use install-cigri, install-cigri-server, install-cigri-user or install-autogenerated-cert."
setup: setup-api
install-cigri: install-cigri-server install-cigri-user
install-cigri-server: check-old install-cigri-libs install-cigri-modules install-cigri-systemd install-cigri-api install-cigri-server-config install-cigri-server-tools
install-cigri-user: check-old install-cigri-libs install-cigri-user-cmds install-cigri-user-config install-cigri-server-config
install-autogenerated-cert: gen-ssl-cert
check-old:
if [ -f $(DESTDIR)$(CIGRIDIR)/Almighty/AlmightyCigri.pl ]; then echo "Old install of cigri v2 found, please, remove before."; exit 1; fi
install-cigri-libs:
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)/lib
for file in lib/*; do install -m 0644 $$file $(DESTDIR)$(CIGRIDIR)/lib/; done
mv $(DESTDIR)$(CIGRIDIR)/lib/cigri-clientlib.rb.in $(DESTDIR)$(CIGRIDIR)/lib/cigri-clientlib.rb
perl -pi -e "s#%%CIGRICONFDIR%%#$(CIGRICONFDIR)#g" $(DESTDIR)$(CIGRIDIR)/lib/cigri-clientlib.rb
install-cigri-modules:
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)/modules
for file in modules/*; do install -m 0755 $$file $(DESTDIR)$(CIGRIDIR)/modules; done
install-cigri-server-tools:
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)/sbin
install -m 0755 sbin/new_cluster.rb $(DESTDIR)$(CIGRIDIR)/sbin/newcluster
echo -e '#!/bin/bash\nCIGRICONFFILE=$(CIGRICONFDIR)/cigri.conf CIGRIDIR=$(CIGRIDIR) $(CIGRIDIR)/sbin/grid_test_cluster.rb "$$@"' > $(DESTDIR)$(SBINDIR)/grid_test_cluster ; \
chmod 755 $(DESTDIR)$(SBINDIR)/grid_test_cluster ; \
install -m 0755 sbin/grid_test_cluster.rb $(DESTDIR)$(CIGRIDIR)/sbin/grid_test_cluster.rb
install-cigri-user-cmds:
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)/bin
for cmd in $(USERCMDS) ; do \
install -m 0755 bin/$$cmd.rb $(DESTDIR)$(CIGRIDIR)/bin/$$cmd.rb ; \
echo -e '#!/bin/bash\nCIGRICONFFILE=$(CIGRICONFDIR)/api-clients.conf $(CIGRIDIR)/bin/'$$cmd'.rb "$$@"' > $(DESTDIR)$(BINDIR)/$$cmd ; \
chmod 755 $(DESTDIR)$(BINDIR)/$$cmd ; \
done
install-cigri-user-config:
install -d -m 0755 $(DESTDIR)$(CIGRICONFDIR)
if [ -f $(DESTDIR)$(CIGRICONFDIR)/api-clients.conf ]; then echo "$(DESTDIR)$(CIGRICONFDIR)/api-clients.conf found, not erasing."; \
else install -m 0644 etc/api-clients.conf.in $(DESTDIR)$(CIGRICONFDIR)/api-clients.conf; \
perl -pi -e "s#%%CIGRIDIR%%#$(CIGRIDIR)#g;;\
s#%%APIBASE%%#$(APIBASE)#g" $(DESTDIR)$(CIGRICONFDIR)/api-clients.conf; fi
install-cigri-systemd:
install -d -m 0755 $(DESTDIR)$(PIDDIR)
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)
install -m 0755 etc/systemd/system/cigri.service.in $(DESTDIR)/etc/systemd/system/cigri.service
perl -pi -e "s#%%CIGRIDIR%%#$(CIGRIDIR)#g;;\
s#%%CIGRIUSER%%#$(CIGRIUSER)#g;;\
s#%%PIDDIR%%#$(PIDDIR)#g" $(DESTDIR)/etc/systemd/system/cigri.service
touch $(DESTDIR)$(LOGDIR)/cigri.log
chmod 600 $(DESTDIR)$(LOGDIR)/cigri.log
chown $(CIGRIUSER) $(DESTDIR)$(LOGDIR)/cigri.log
mkdir -p $(DESTDIR)$(LOGDIR)/cigri_jobs
chmod 700 $(DESTDIR)$(LOGDIR)/cigri_jobs
chown $(CIGRIUSER) $(DESTDIR)$(LOGDIR)/cigri_jobs
install-cigri-api:
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)
install -d -m 0755 $(DESTDIR)$(CIGRIDIR)/api
for file in api/*; do install -m 0755 $$file $(DESTDIR)$(CIGRIDIR)/api; done
setup-api:
# The following activates the magic of Passenger's user switching support
# so that the API runs under the cigri user:
chown $(CIGRIUSER) $(DESTDIR)$(CIGRIDIR)/api/config.ru
# Dont'know why, but this directory must exist or passenger fails
mkdir -p $(DESTDIR)$(WWWDIR)/cigri-api
install-cigri-server-config:
install -d -m 0755 $(DESTDIR)$(CIGRICONFDIR)
if [ -f $(DESTDIR)$(CIGRICONFDIR)/cigri.conf ]; then echo "$(DESTDIR)$(CIGRICONFDIR)/cigri.conf found, not erasing."; \
else install -m 0600 etc/cigri.conf.in $(DESTDIR)$(CIGRICONFDIR)/cigri.conf; fi
if [ -f $(DESTDIR)$(CIGRICONFDIR)/api-apache.conf ]; then echo "$(DESTDIR)$(CIGRICONFDIR)/api-apache.conf found, not erasing."; \
else install -m 0644 etc/api-apache.conf.in $(DESTDIR)$(CIGRICONFDIR)/api-apache.conf; \
perl -pi -e "s#%%CIGRIDIR%%#$(CIGRIDIR)#g;;\
s#%%APIBASE%%#$(APIBASE)#g" $(DESTDIR)$(CIGRICONFDIR)/api-apache.conf; fi
if [ -f $(DESTDIR)$(CIGRICONFDIR)/user_lists ]; then echo "$(DESTDIR)$(CIGRICONFDIR)/user_lists found, not erasing."; \
else install -m 0644 etc/user_lists $(DESTDIR)$(CIGRICONFDIR)/user_lists; fi
mkdir -p $(DESTDIR)$(VARDIR)
chown $(CIGRIUSER) $(DESTDIR)$(VARDIR)
chown -R $(CIGRIUSER) $(DESTDIR)$(CIGRICONFDIR)
gen-ssl-cert: /etc/cigri/ssl
/etc/cigri/ssl:
install -d -m 0700 $(DESTDIR)$(CIGRICONFDIR)/ssl
#TODO: customize etc/ssl/cigri.cnf.in with variables from the makefile
install -m 0644 etc/ssl/cigri.cnf $(DESTDIR)$(CIGRICONFDIR)/ssl/cigri.cnf
openssl genrsa -out $(DESTDIR)$(CIGRICONFDIR)/ssl/cigri.key 2048
openssl req -config $(DESTDIR)$(CIGRICONFDIR)/ssl/cigri.cnf -new -key $(DESTDIR)$(CIGRICONFDIR)/ssl/cigri.key -out $(DESTDIR)$(CIGRICONFDIR)/ssl/cigri.csr
openssl x509 -req -days 3650 -in $(DESTDIR)$(CIGRICONFDIR)/ssl/cigri.csr -CA $(CACERT) -CAkey $(CAKEY) -CAcreateserial -out $(DESTDIR)$(CIGRICONFDIR)/ssl/cigri.crt
chown -R $(CIGRIUSER) $(DESTDIR)$(CIGRICONFDIR)
clean:
rm -rf doc/rdoc doc/yard .yardoc
rm -f doc/documentation/*.pdf doc/documentation/*.html doc/documentation/*.aux doc/documentation/*.out doc/documentation/*.log
uninstall:
if [ -d $(DESTDIR)$(CIGRICONFDIR) ]; then echo "Not removing $(DESTDIR)$(CIGRICONFDIR)"; fi
rm -rf $(DESTDIR)$(CIGRIDIR)
for cmd in $(USERCMDS) ; do rm -f $(DESTDIR)$(BINDIR)/$$cmd ; done
rm -f $(DESTDIR)/etc/init.d/cigri_start
rm -f $(DESTDIR)/etc/init.d/cigri
rm -f $(DESTDIR)$(SBINDIR)/grid_test_cluster