-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
146 lines (119 loc) · 4.85 KB
/
Makefile
File metadata and controls
146 lines (119 loc) · 4.85 KB
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
SHELL=/bin/bash
MAKEFILEDIR = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
CODE = $(abspath $(MAKEFILEDIR)/..)
ifeq ($(shell uname -o),Cygwin)
win_path = $(shell cygpath -ma $(1))
uri = $(shell echo file:///$(call win_path,$(1)) | perl -pe 's/ /%20/g')
unix_paths = $(shell cygpath -u -f $(1))
else
win_path = $(abspath $(1))
uri = $(shell echo file:$(abspath $(1)) | perl -pe 's/ /%20/g')
unix_paths = $(shell cat $(abspath $(1)) /dev/null)
endif
ACTIONLOG = /dev/null
# The following variables should be set in local_defs.mk:
EMAIL=crossref@acme.com
USER=user
PASS=pass
CROSSREFTMP=~/crossref
FETCHMAIL=fetchmail
FIRE=true
# The work subdir where the source XML files reside
XMLSUBDIR=xml
BACKUP_FILES=$(abspath $(CROSSREFTMP)/../fetchmail.log) $(addprefix $(CODE)/crossref/,local_defs.mk infrastructure/fetchmailrc infrastructure/procmailrc infrastructure/fetch_and_process_crossref.sh infrastructure/crontab)
-include $(MAKEFILEDIR)/local_defs.mk
export
unexport win_path uri unix_paths
testi:
# $(FETCHMAIL) -f $(CODE)/crossref/infrastructure/fetchmailrc
$(CODE)/calabash/calabash.sh \
-i merging-stylesheet=$(call uri,$(MAKEFILEDIR)/xsl/merge-results-with-query.xsl) \
-i conf=$(call uri,$(CODE)/conf/transpect-conf.xml) \
-o result=$(call win_path,$(CROSSREFTMP))/files.txt \
$(call uri,$(MAKEFILEDIR)/xpl/process-crossref-results.xpl) \
input-dir-uri=$(call uri,$(CROSSREFTMP)) \
tmp-suffix=".tmp"
ls -l $(CROSSREFTMP)
cat $(CROSSREFTMP)/files.txt
echo
echo $(call unix_paths,$(CROSSREFTMP)/files.txt)
# This target should be invoked periodically.
# See README.txt for preparation instructions
%/files.txt:
-svn up $(CODE)
$(FETCHMAIL) -f $(CODE)/crossref/infrastructure/fetchmailrc || [ $$? -eq 1 ]
-$(CODE)/calabash/calabash.sh -D \
-i merging-stylesheet=$(call uri,$(MAKEFILEDIR)/xsl/merge-results-with-query.xsl) \
-i conf=$(call uri,$(CODE)/conf/transpect-conf.xml) \
-o result=$(call win_path,$@) \
$(call uri,$(MAKEFILEDIR)/xpl/process-crossref-results.xpl) \
input-dir-uri=$(call uri,$(CROSSREFTMP)) \
merge-results-with-query=false \
tmp-suffix=".tmp" \
2> $(CROSSREFTMP)/proto-process-crossref-results.txt
fetchmail: $(abspath $(CROSSREFTMP))/files.txt
$(foreach file,$(call unix_paths,$<),$(MAKE) -C $(MAKEFILEDIR) update_dirs FILE=$(file); )
-$(CODE)/calabash/calabash.sh -D \
-i merging-stylesheet=$(call uri,$(MAKEFILEDIR)/xsl/merge-results-with-query.xsl) \
-i conf=$(call uri,$(CODE)/conf/transpect-conf.xml) \
-o result=$(call win_path,$@) \
$(call uri,$(MAKEFILEDIR)/xpl/process-crossref-results.xpl) \
input-dir-uri=$(call uri,$(CROSSREFTMP)) \
merge-results-with-query=true \
tmp-suffix=".tmp" \
2> $(CROSSREFTMP)/process-crossref-results.txt
$(foreach file,$(call unix_paths,$<),$(MAKE) -C $(MAKEFILEDIR) process_fetched FILE=$(file); )
update_dirs:
# update series dir:
-svn up $(abspath $(addsuffix ../..,$(dir $(FILE))))
process_fetched:
-svn lock $(FILE)
mv $(FILE).tmp $(FILE)
-svn add --depth empty $(abspath $(addsuffix ..,$(dir $(FILE))))
-svn add --depth empty $(dir $(FILE))
-svn add $(FILE)
-svn add $(addsuffix .jsx,$(basename $(FILE)))
-svn ci --depth empty $(abspath $(addsuffix ..,$(dir $(FILE)))) -m automatic
-svn ci --depth empty $(dir $(FILE)) -m automatic
svn ci $(FILE) -m automatic
svn ci $(addsuffix .jsx,$(basename $(FILE))) -m automatic
# Because of the needs-lock property set by hook:
svn up $(FILE)
svn up $(addsuffix .jsx,$(basename $(FILE)))
-rm $(CROSSREFTMP)/*
remove_old_crossrefs:
-svn up $(call unix_paths,$(abspath $(CROSSREFTMP))/files.txt)
-svn rm $(call unix_paths,$(abspath $(CROSSREFTMP))/files.txt)
-svn rm $(addsuffix .jsx,$(basename $(call unix_paths,$(abspath $(CROSSREFTMP))/files.txt)))
-svn ci $(call unix_paths,$(abspath $(CROSSREFTMP))/files.txt) -m automatic
-svn ci $(addsuffix .jsx,$(basename $(call unix_paths,$(abspath $(CROSSREFTMP))/files.txt))) -m automatic
# BACKUP THE CONFIG
#.PHONY: $(BACKUP_FILES)
%/fetchmail.log: FORCE
-rm $@
touch $@
%/crontab: FORCE
crontab -l > $@
%/conf_backup.tgz: $(BACKUP_FILES)
-rm $@~
-mv $@ $@~
tar czf $@ $^
chmod 600 $@
backup_conf: FORCE $(CODE)/crossref/infrastructure/conf_backup.tgz
FORCE:
.SECONDEXPANSION:
# This target will issue a crossref request
%.qb.xml: $$(subst crossref,$(XMLSUBDIR),$$(subst .qb,,$$@))
echo "nun $@ erzeugen" >> $(ACTIONLOG)
echo "ggf. Werkverzeichnis $(abspath $(addsuffix ..,$(dir $@))) erstellen" >> $(ACTIONLOG)
-svn mkdir $(abspath $(addsuffix ..,$(dir $@)))
-svn mkdir $(dir $@)
$(CODE)/calabash/calabash.sh \
-i source=$(call uri,$<) \
-o qb=$(call win_path,$@) \
$(call uri,$(MAKEFILEDIR)/xpl/jats-submit-crossref-query.xpl) \
user=$(CROSSREFUSER) pass=$(CROSSREFPASS) \
email=$(EMAIL) fire=$(FIRE) 2>&1 >> $(ACTIONLOG)
-svn add $@
-svn ci --depth empty $(abspath $(addsuffix ..,$(dir $@))) -m automatic 2>&1 >> $(ACTIONLOG)
-svn ci $(dir $@) -m automatic 2>&1 >> $(ACTIONLOG)