-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathMakefile
132 lines (107 loc) · 3.54 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
.PHONY: lint docs build test tests fmt init
#################################################################################
# Rules
#################################################################################
## ==== codebase devel ====
## Lint codebase
lint:
Rscript -e "lintr::lint_package()"
## Format codebase
fmt:
Rscript -e "styler::style_pkg(filetype=c('R', 'Rmd'))"
## testthat
test:
CI=true Rscript -e "devtools::test()"
tests: test
## ==== package build ====
## Update rd docs
roxygen:
CI=true Rscript -e "devtools::document()"
## devtools::check (superset of unit tests)
check:
CI=true Rscript -e "devtools::check()"
## devtools::run_examples, including don't run
run_examples:
CI=true Rscript -e "devtools::run_examples(run_dontrun = TRUE)"
## Precompute vignetts
precompute_docs:
CI=true Rscript scripts/precompute.R
## Build pkgdown documentation
docs:
CI=true Rscript -e "pkgdown::build_site(run_dont_run = TRUE)"
## Build package
build:
CI=true Rscript -e "devtools::build(path = '/pkg-build', vignettes = TRUE, manual = TRUE)"
## ==== CRAN submission ====
## Check for CRAN submission
## (note: assuming path to package is /build/epigraphdb_0.2.3.tar.gz)
r-cmd-check:
CI=true R CMD check --as-cran /pkg-build/epigraphdb_0.2.3.tar.gz
## Check for CRAN submission (via rhub's remote specs)
## (note: you should have manually done rhub::validate_email,
## as https://r-hub.github.io/rhub/articles/rhub.html)
rhub-check-cran:
# NOTE: the env_var tries to deal with utf8 issues
# https://github.com/r-hub/rhub/issues/374
# Rscript -e "rhub::check_for_cran(env_vars=c(R_COMPILE_AND_INSTALL_PACKAGES = 'always'))"
Rscript -e "devtools::check_rhub(interactive = FALSE, env_vars=c(R_COMPILE_AND_INSTALL_PACKAGES = 'always'))"
## Check for MS windows compatibility (via devtools::check_win_devel)
rhub-check-windows:
Rscript -e "devtools::check_win_devel()"
Rscript -e "devtools::check_win_release()"
## ==== less frequently used utils ====
## Init (install a local copy and its development dependencies)
init:
Rscript -e "devtools::install(dependencies = TRUE)"
## Build package and install locally
install:
Rscript -e "devtools::install()"
## Uninstall
uninstall:
Rscript -e "devtools::uninstall()"
## Check for CRAN submission (via rhub's local docker container); requirement: sysreqs, and github version of rhub
check-cran-local:
# NOTE: the env_var tries to deal with utf8 issues
# https://github.com/r-hub/rhub/issues/374
Rscript -e "rhub::local_check_linux(env_vars=c(R_COMPILE_AND_INSTALL_PACKAGES = 'always'))"
#################################################################################
# Self Documenting Commands #
#################################################################################
.DEFAULT_GOAL := help
.PHONY: help
help:
@echo "$$(tput bold)Available rules:$$(tput sgr0)"
@echo
@sed -n -e "/^## / { \
h; \
s/.*//; \
:doc" \
-e "H; \
n; \
s/^## //; \
t doc" \
-e "s/:.*//; \
G; \
s/\\n## /---/; \
s/\\n/ /g; \
p; \
}" ${MAKEFILE_LIST} \
| awk -F '---' \
-v ncol=$$(tput cols) \
-v indent=19 \
-v col_on="$$(tput setaf 6)" \
-v col_off="$$(tput sgr0)" \
'{ \
printf "%s%*s%s ", col_on, -indent, $$1, col_off; \
n = split($$2, words, " "); \
line_length = ncol - indent; \
for (i = 1; i <= n; i++) { \
line_length -= length(words[i]) + 1; \
if (line_length <= 0) { \
line_length = ncol - indent - length(words[i]) - 1; \
printf "\n%*s ", -indent, " "; \
} \
printf "%s ", words[i]; \
} \
printf "\n"; \
}'