-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
116 lines (86 loc) · 3.27 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
# be sure to change this name if you build a Docker image
DOCKER-IMAGE:=study-template
# you might need to update some paths below, but probably not
PYTHON:=python3
VERBOSE:=
ZIP:=zip
ZIPOPTIONS:=-u -r
ZIPIGNORES:=-x \*.DS_Store\* -x \*.gitkeep\* -x data/csv/\*
ZENODO_DOWNLOAD=$(PYTHON) bin/zenodo-download.py
DOWNLOAD:=$(PYTHON) bin/download.py $(VERBOSE)
BOATOCSV:=$(PYTHON) bin/boa-to-csv.py
JSONSCHEMA:=check-jsonschema
SED:=sed
MKDIR:=mkdir -p
CP:=cp -f
############################
# DO NOT MODIFY BELOW HERE #
############################
.PHONY: all
all: analysis
.PHONY: data
data: txt csv
include Makefile.study
Makefile.study: study-config.json bin/build-makefile.py
$(JSONSCHEMA) --verbose --schemafile schemas/0.1.2/study-config.schema.json study-config.json
$(PYTHON) bin/build-makefile.py > $@
####################
# packaging targets
#
.PHONY: zip package package-replication package-data package-cache zenodo
zip: package
package: package-replication package-data package-cache
package-replication:
@$(CP) requirements.txt requirements.txt.save
@$(SED) 's/>=/==/g' requirements.txt.save > requirements.txt
@$(CP) requirements-optional.txt requirements-optional.txt.save
@$(SED) 's/>=/==/g' requirements-optional.txt.save > requirements-optional.txt
-$(ZIP) replication-pkg.zip $(ZIPOPTIONS) .vscode/*.json analyses/**/*.py analyses/*.py bin/**/*.py bin/*.py boa/ figures/ schemas/ tables/ jobs.json LICENSE Makefile Dockerfile README.md requirements.txt requirements-optional.txt study-config.json $(ZIPIGNORES)
@$(CP) requirements.txt.save requirements.txt
@$(CP) requirements-optional.txt.save requirements-optional.txt
@$(RM) requirements.txt.save requirements-optional.txt.save
package-data:
-$(ZIP) data.zip $(ZIPOPTIONS) data/txt/ $(ZIPIGNORES)
package-cache:
-$(ZIP) data-cache.zip $(ZIPOPTIONS) data/parquet/ $(ZIPIGNORES)
.PHONY: docker run-docker
docker:
@$(CP) requirements.txt requirements.txt.save
@$(SED) 's/>=/==/g' requirements.txt.save > requirements.txt
@$(CP) requirements-optional.txt requirements-optional.txt.save
@$(SED) 's/>=/==/g' requirements-optional.txt.save > requirements-optional.txt
-docker build -t $(DOCKER-IMAGE):latest .
@$(CP) requirements.txt.save requirements.txt
@$(CP) requirements-optional.txt.save requirements-optional.txt
@$(RM) requirements.txt.save requirements-optional.txt.save
run-docker: docker
docker run -it -v $(shell pwd):/study $(DOCKER-IMAGE):latest
zenodo:
$(PYTHON) bin/zenodo.py
##########################
# downloading from Zenodo
#
get-data:
$(ZENODO_DOWNLOAD) data.zip
get-cache:
$(ZENODO_DOWNLOAD) data-cache.zip
################
# clean targets
#
.PHONY: clean clean-figures clean-tables clean-data clean-csv clean-pq clean-txt clean-zip clean-all
clean: clean-figures clean-tables
${RM} -R __pycache__ bin/__pycache__ analyses/**/__pycache__ analyses/__pycache__
clean-figures:
${RM} figures/**/*.pdf figures/*.pdf figures/**/*.png figures/*.png
clean-tables:
${RM} tables/**/*.tex tables/*.tex
clean-data: clean-csv clean-pq clean-txt
clean-csv:
${RM} data/csv/**/*.csv data/csv/*.csv
clean-pq:
${RM} data/parquet/**/*.parquet data/parquet/*.parquet
clean-txt:
${RM} data/txt/**/*.txt data/txt/*.txt
clean-zip:
${RM} replication-pkg.zip data.zip data-cache.zip
clean-all: clean clean-data clean-zip