metanorma-cli 1.2.13.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/05-020r26.rxl +75 -0
- data/05-020r26.xml.zip +0 -0
- data/Gemfile.lock +336 -0
- data/README.adoc +31 -0
- data/a +3 -0
- data/a.json +33 -0
- data/a.rb +13 -0
- data/a.rxl +45 -0
- data/b +85 -0
- data/csd-tofix 2.zip +0 -0
- data/csd-tofix.zip +0 -0
- data/exe/metanorma.old +178 -0
- data/extract/sourcecode/sourcecode-0000.txt +5 -0
- data/files.zip +0 -0
- data/lib/metanorma/cli.rb +3 -16
- data/lib/metanorma/cli/command.rb +35 -7
- data/lib/metanorma/cli/compiler.rb +6 -1
- data/lib/metanorma/cli/setup.rb +26 -12
- data/lib/metanorma/cli/version.rb +1 -1
- data/metanorma-cli.gemspec +20 -19
- data/relaton/cache/version +1 -0
- data/rice.rxl +51 -0
- data/sourcecode/0 +5 -0
- data/test.rxl +52 -0
- data/tmp/my-custom-csd/Gemfile +4 -0
- data/tmp/my-custom-csd/Makefile +144 -0
- data/tmp/my-custom-csd/Makefile.win +116 -0
- data/tmp/my-custom-csd/appveyor.yml +29 -0
- data/tmp/my-custom-csd/metanorma.yml +4 -0
- data/tmp/my-document/Gemfile +4 -0
- data/tmp/my-document/Makefile +144 -0
- data/tmp/my-document/Makefile.win +116 -0
- data/tmp/my-document/appveyor.yml +29 -0
- data/tmp/my-document/metanorma.yml +4 -0
- data/tmp/my-local-document/Gemfile +4 -0
- data/tmp/my-local-document/Makefile +144 -0
- data/tmp/my-local-document/Makefile.win +116 -0
- data/tmp/my-local-document/appveyor.yml +29 -0
- data/tmp/my-local-document/metanorma.yml +4 -0
- metadata +88 -41
@@ -25,10 +25,12 @@ module Metanorma
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
# @return [Array<String>]
|
28
29
|
def compile
|
29
30
|
compile_file
|
30
31
|
end
|
31
32
|
|
33
|
+
# @return [Array<String>]
|
32
34
|
def self.compile(file, options)
|
33
35
|
new(file, options).compile
|
34
36
|
end
|
@@ -37,8 +39,11 @@ module Metanorma
|
|
37
39
|
|
38
40
|
attr_reader :file, :options, :extract, :extensions
|
39
41
|
|
42
|
+
# @return [Array<String>]
|
40
43
|
def compile_file
|
41
|
-
Compile.new
|
44
|
+
c = Compile.new
|
45
|
+
c.compile(file, serialize_options)
|
46
|
+
c.errors
|
42
47
|
end
|
43
48
|
|
44
49
|
def serialize_options
|
data/lib/metanorma/cli/setup.rb
CHANGED
@@ -40,9 +40,11 @@ module Metanorma
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def download_font
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
begin
|
44
|
+
Fontist::Font.find(font_name)
|
45
|
+
rescue Fontist::Errors::MissingFontError
|
46
|
+
ask_user_and_download_font(font_name)
|
47
|
+
end
|
46
48
|
end
|
47
49
|
|
48
50
|
def copy_to_fonts(fonts_path)
|
@@ -54,25 +56,37 @@ module Metanorma
|
|
54
56
|
|
55
57
|
def ask_user_and_download_font(font_name)
|
56
58
|
response = term_agreement ? "yes" : "no"
|
59
|
+
formula = Fontist::Formula.find(font_name)
|
57
60
|
|
58
61
|
if !term_agreement
|
59
|
-
response = UI.ask(message.strip)
|
62
|
+
response = UI.ask(message(formula.license).strip)
|
60
63
|
end
|
61
64
|
|
62
65
|
if response.downcase === "yes"
|
63
|
-
Fontist::
|
66
|
+
Fontist::Font.install(font_name, confirmation: response)
|
64
67
|
end
|
65
68
|
end
|
66
69
|
|
67
|
-
def message
|
70
|
+
def message(license)
|
68
71
|
<<~MSG
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
72
|
+
FONT LICENSE ACCEPTANCE REQUIRED:
|
73
|
+
|
74
|
+
Metanorma has detected that you do not have the necessary fonts installed
|
75
|
+
for PDF generation. Without those fonts, the generated PDF will use
|
76
|
+
generic fonts that may not resemble the desired styling.
|
77
|
+
|
78
|
+
Metanorma can download these files for you if you accept the font
|
79
|
+
licensing conditions for the font "#{font_name}".
|
80
|
+
|
81
|
+
FONT LICENSE BEGIN ("#{font_name}")
|
82
|
+
-----------------------------------------------------------------------
|
83
|
+
#{license}
|
84
|
+
-----------------------------------------------------------------------
|
85
|
+
FONT LICENSE END ("#{font_name}")
|
73
86
|
|
74
|
-
|
75
|
-
|
87
|
+
Do you accept all presented font licenses, and want Metanorma to
|
88
|
+
download these fonts for you?
|
89
|
+
=> TYPE "Yes" or "No":
|
76
90
|
MSG
|
77
91
|
end
|
78
92
|
end
|
data/metanorma-cli.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.required_ruby_version = '>= 2.4.0'
|
25
25
|
|
26
26
|
spec.add_development_dependency "pry"
|
27
|
+
spec.add_development_dependency "sassc", "2.4.0"
|
27
28
|
spec.add_development_dependency "rake", "~> 12.0"
|
28
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
29
30
|
spec.add_development_dependency "byebug", "~> 10.0"
|
@@ -31,27 +32,27 @@ Gem::Specification.new do |spec|
|
|
31
32
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
32
33
|
spec.add_development_dependency "rspec-core", "~> 3.4"
|
33
34
|
|
34
|
-
spec.add_runtime_dependency "thor", "~> 0
|
35
|
-
spec.add_runtime_dependency "metanorma-iso", "~> 1.
|
36
|
-
spec.add_runtime_dependency 'metanorma-ietf', "~> 2.
|
37
|
-
spec.add_runtime_dependency 'metanorma-gb', "~> 1.
|
38
|
-
spec.add_runtime_dependency 'metanorma-iec', "~> 1.
|
39
|
-
spec.add_runtime_dependency 'metanorma-
|
40
|
-
spec.add_runtime_dependency 'metanorma-csa', "~> 1.
|
41
|
-
#spec.add_runtime_dependency 'metanorma-
|
42
|
-
spec.add_runtime_dependency 'metanorma-
|
43
|
-
spec.add_runtime_dependency 'metanorma-generic', "~> 1.
|
35
|
+
spec.add_runtime_dependency "thor", "~> 1.0"
|
36
|
+
spec.add_runtime_dependency "metanorma-iso", "~> 1.4.0"
|
37
|
+
spec.add_runtime_dependency 'metanorma-ietf', "~> 2.1.0"
|
38
|
+
spec.add_runtime_dependency 'metanorma-gb', "~> 1.4.0"
|
39
|
+
spec.add_runtime_dependency 'metanorma-iec', "~> 1.1.0"
|
40
|
+
spec.add_runtime_dependency 'metanorma-cc', "~> 1.4.0"
|
41
|
+
spec.add_runtime_dependency 'metanorma-csa', "~> 1.5.0"
|
42
|
+
#spec.add_runtime_dependency 'metanorma-ribose', "~> 1.5.0"
|
43
|
+
spec.add_runtime_dependency 'metanorma-m3aawg', "~> 1.4.0"
|
44
|
+
spec.add_runtime_dependency 'metanorma-generic', "~> 1.5.0"
|
44
45
|
spec.add_runtime_dependency 'metanorma-standoc', "~> 1.4.0"
|
45
|
-
#spec.add_runtime_dependency 'metanorma-
|
46
|
-
spec.add_runtime_dependency 'metanorma-un', "~> 0.
|
47
|
-
spec.add_runtime_dependency 'metanorma-ogc', "~> 1.
|
48
|
-
spec.add_runtime_dependency 'metanorma-nist', "~> 1.
|
49
|
-
spec.add_runtime_dependency 'metanorma-itu', "~> 1.
|
50
|
-
spec.add_runtime_dependency 'metanorma-iho', "~> 0.0
|
51
|
-
spec.add_runtime_dependency 'isodoc', "~> 1.
|
52
|
-
spec.add_runtime_dependency 'metanorma', "~> 1.
|
46
|
+
#spec.add_runtime_dependency 'metanorma-mpfa', "~> 0.4.0"
|
47
|
+
spec.add_runtime_dependency 'metanorma-un', "~> 0.4.0"
|
48
|
+
spec.add_runtime_dependency 'metanorma-ogc', "~> 1.1.0"
|
49
|
+
spec.add_runtime_dependency 'metanorma-nist', "~> 1.1.0"
|
50
|
+
spec.add_runtime_dependency 'metanorma-itu', "~> 1.1.0"
|
51
|
+
spec.add_runtime_dependency 'metanorma-iho', "~> 0.1.0"
|
52
|
+
spec.add_runtime_dependency 'isodoc', "~> 1.1.0"
|
53
|
+
spec.add_runtime_dependency 'metanorma', "~> 1.1.0"
|
53
54
|
#spec.add_runtime_dependency 'nokogiri', ">= 1"
|
54
55
|
spec.add_runtime_dependency "git", "~> 1.5"
|
55
56
|
spec.add_runtime_dependency "relaton-cli", ">= 0.8.2"
|
56
|
-
spec.add_runtime_dependency "fontist", "~>
|
57
|
+
spec.add_runtime_dependency "fontist", "~> 1.0"
|
57
58
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
0.5.0
|
data/rice.rxl
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
<bibdata type="standard">
|
2
|
+
<title language="en" format="text/plain">Rice model</title>
|
3
|
+
<title language="intro-en" format="text/plain">Cereals and pulses</title>
|
4
|
+
<title language="main-en" format="text/plain">Specifications and test methods</title>
|
5
|
+
<title language="part-en" format="text/plain">Rice</title>
|
6
|
+
<title language="intro-fr" format="text/plain">Céréales et légumineuses</title>
|
7
|
+
<title language="main-fr" format="text/plain">Spécification et méthodes d'essai</title>
|
8
|
+
<title language="part-fr" format="text/plain">Riz</title>
|
9
|
+
<docidentifier type="m3d">17301:2016</docidentifier>
|
10
|
+
<docnumber>17301</docnumber>
|
11
|
+
<contributor>
|
12
|
+
<role type="author"/>
|
13
|
+
<organization>
|
14
|
+
<name>Messaging Malware and Mobile Anti-Abuse Working Group</name>
|
15
|
+
<abbreviation>M3AAWG</abbreviation>
|
16
|
+
</organization>
|
17
|
+
</contributor>
|
18
|
+
<contributor>
|
19
|
+
<role type="publisher"/>
|
20
|
+
<organization>
|
21
|
+
<name>Messaging Malware and Mobile Anti-Abuse Working Group</name>
|
22
|
+
<abbreviation>M3AAWG</abbreviation>
|
23
|
+
</organization>
|
24
|
+
</contributor>
|
25
|
+
<edition>2</edition>
|
26
|
+
<version>
|
27
|
+
<revision-date>2016-05-01</revision-date>
|
28
|
+
|
29
|
+
</version>
|
30
|
+
<language>en</language>
|
31
|
+
<script>Latn</script>
|
32
|
+
<status>
|
33
|
+
<stage>30</stage>
|
34
|
+
<substage>92</substage>
|
35
|
+
</status>
|
36
|
+
<copyright>
|
37
|
+
<from>2016</from>
|
38
|
+
<owner>
|
39
|
+
<organization>
|
40
|
+
<name>Messaging Malware and Mobile Anti-Abuse Working Group</name>
|
41
|
+
<abbreviation>M3AAWG</abbreviation>
|
42
|
+
</organization>
|
43
|
+
</owner>
|
44
|
+
</copyright>
|
45
|
+
<ext>
|
46
|
+
<doctype>report</doctype>
|
47
|
+
<editorialgroup>
|
48
|
+
<committee>Food products</committee>
|
49
|
+
</editorialgroup>
|
50
|
+
</ext>
|
51
|
+
</bibdata>
|
data/sourcecode/0
ADDED
data/test.rxl
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
<bibdata type="standard">
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
<docidentifier type="iso">ISO 123</docidentifier>
|
7
|
+
<docidentifier type="iso-with-lang">ISO 123(E)</docidentifier>
|
8
|
+
<docidentifier type="iso-reference">ISO 123(E)</docidentifier>
|
9
|
+
<docnumber>123</docnumber>
|
10
|
+
<contributor>
|
11
|
+
<role type="author"/>
|
12
|
+
<organization>
|
13
|
+
<name>International Organization for Standardization</name>
|
14
|
+
<abbreviation>ISO</abbreviation>
|
15
|
+
</organization>
|
16
|
+
</contributor>
|
17
|
+
<contributor>
|
18
|
+
<role type="publisher"/>
|
19
|
+
<organization>
|
20
|
+
<name>International Organization for Standardization</name>
|
21
|
+
<abbreviation>ISO</abbreviation>
|
22
|
+
</organization>
|
23
|
+
</contributor>
|
24
|
+
|
25
|
+
<language>en</language>
|
26
|
+
<script>script.html</script>
|
27
|
+
<status>
|
28
|
+
<stage abbreviation="IS">60</stage>
|
29
|
+
<substage>60</substage>
|
30
|
+
</status>
|
31
|
+
<copyright>
|
32
|
+
<from>2020</from>
|
33
|
+
<owner>
|
34
|
+
<organization>
|
35
|
+
<name>International Organization for Standardization</name>
|
36
|
+
<abbreviation>ISO</abbreviation>
|
37
|
+
</organization>
|
38
|
+
</owner>
|
39
|
+
</copyright>
|
40
|
+
<ext>
|
41
|
+
<doctype>article</doctype>
|
42
|
+
<editorialgroup>
|
43
|
+
<technical-committee/>
|
44
|
+
<subcommittee/>
|
45
|
+
<workgroup/>
|
46
|
+
</editorialgroup>
|
47
|
+
<structuredidentifier>
|
48
|
+
<project-number>ISO 123</project-number>
|
49
|
+
</structuredidentifier>
|
50
|
+
<stagename>International standard</stagename>
|
51
|
+
</ext>
|
52
|
+
</bibdata>
|
@@ -0,0 +1,144 @@
|
|
1
|
+
#!make
|
2
|
+
SHELL := /bin/bash
|
3
|
+
# Ensure the xml2rfc cache directory exists locally
|
4
|
+
IGNORE := $(shell mkdir -p $(HOME)/.cache/xml2rfc)
|
5
|
+
|
6
|
+
SRC := $(shell yq r metanorma.yml metanorma.source.files | cut -c 3-999)
|
7
|
+
ifeq ($(SRC),ll)
|
8
|
+
SRC := $(filter-out README.adoc, $(wildcard *.adoc))
|
9
|
+
endif
|
10
|
+
|
11
|
+
FORMAT_MARKER := mn-output-
|
12
|
+
FORMATS := $(shell grep "$(FORMAT_MARKER)" $(SRC) | cut -f 2 -d ' ' | tr ',' '\n' | sort | uniq | tr '\n' ' ')
|
13
|
+
|
14
|
+
XML := $(patsubst %.adoc,%.xml,$(SRC))
|
15
|
+
XMLRFC3 := $(patsubst %.adoc,%.v3.xml,$(SRC))
|
16
|
+
HTML := $(patsubst %.adoc,%.html,$(SRC))
|
17
|
+
DOC := $(patsubst %.adoc,%.doc,$(SRC))
|
18
|
+
PDF := $(patsubst %.adoc,%.pdf,$(SRC))
|
19
|
+
TXT := $(patsubst %.adoc,%.txt,$(SRC))
|
20
|
+
NITS := $(patsubst %.adoc,%.nits,$(wildcard draft-*.adoc))
|
21
|
+
WSD := $(wildcard models/*.wsd)
|
22
|
+
XMI := $(patsubst models/%,xmi/%,$(patsubst %.wsd,%.xmi,$(WSD)))
|
23
|
+
PNG := $(patsubst models/%,images/%,$(patsubst %.wsd,%.png,$(WSD)))
|
24
|
+
|
25
|
+
COMPILE_CMD_LOCAL := bundle exec metanorma $$FILENAME
|
26
|
+
COMPILE_CMD_DOCKER := docker run -v "$$(pwd)":/metanorma/ ribose/metanorma "metanorma $$FILENAME"
|
27
|
+
|
28
|
+
ifdef METANORMA_DOCKER
|
29
|
+
COMPILE_CMD := echo "Compiling via docker..."; $(COMPILE_CMD_DOCKER)
|
30
|
+
else
|
31
|
+
COMPILE_CMD := echo "Compiling locally..."; $(COMPILE_CMD_LOCAL)
|
32
|
+
endif
|
33
|
+
|
34
|
+
_OUT_FILES := $(foreach FORMAT,$(FORMATS),$(shell echo $(FORMAT) | tr '[:lower:]' '[:upper:]'))
|
35
|
+
OUT_FILES := $(foreach F,$(_OUT_FILES),$($F))
|
36
|
+
|
37
|
+
all: images $(OUT_FILES)
|
38
|
+
|
39
|
+
%.v3.xml %.xml %.html %.doc %.pdf %.txt: %.adoc | bundle
|
40
|
+
FILENAME=$^; \
|
41
|
+
${COMPILE_CMD}
|
42
|
+
|
43
|
+
draft-%.nits: draft-%.txt
|
44
|
+
VERSIONED_NAME=`grep :name: draft-$*.adoc | cut -f 2 -d ' '`; \
|
45
|
+
cp $^ $${VERSIONED_NAME}.txt && \
|
46
|
+
idnits --verbose $${VERSIONED_NAME}.txt > $@ && \
|
47
|
+
cp $@ $${VERSIONED_NAME}.nits && \
|
48
|
+
cat $${VERSIONED_NAME}.nits
|
49
|
+
|
50
|
+
%.nits:
|
51
|
+
|
52
|
+
nits: $(NITS)
|
53
|
+
|
54
|
+
images: $(PNG)
|
55
|
+
|
56
|
+
images/%.png: models/%.wsd
|
57
|
+
plantuml -tpng -o ../images/ $<
|
58
|
+
|
59
|
+
xmi: $(XMI)
|
60
|
+
|
61
|
+
xmi/%.xmi: models/%.wsd
|
62
|
+
plantuml -xmi:star -o ../xmi/ $<
|
63
|
+
|
64
|
+
define FORMAT_TASKS
|
65
|
+
OUT_FILES-$(FORMAT) := $($(shell echo $(FORMAT) | tr '[:lower:]' '[:upper:]'))
|
66
|
+
|
67
|
+
open-$(FORMAT):
|
68
|
+
open $$(OUT_FILES-$(FORMAT))
|
69
|
+
|
70
|
+
clean-$(FORMAT):
|
71
|
+
rm -f $$(OUT_FILES-$(FORMAT))
|
72
|
+
|
73
|
+
$(FORMAT): clean-$(FORMAT) $$(OUT_FILES-$(FORMAT))
|
74
|
+
|
75
|
+
.PHONY: clean-$(FORMAT)
|
76
|
+
|
77
|
+
endef
|
78
|
+
|
79
|
+
$(foreach FORMAT,$(FORMATS),$(eval $(FORMAT_TASKS)))
|
80
|
+
|
81
|
+
open: open-html
|
82
|
+
|
83
|
+
clean:
|
84
|
+
rm -f $(OUT_FILES) && rm -rf published
|
85
|
+
|
86
|
+
bundle:
|
87
|
+
if [ "x" == "${METANORMA_DOCKER}x" ]; then bundle; fi
|
88
|
+
|
89
|
+
.PHONY: bundle all open clean
|
90
|
+
|
91
|
+
#
|
92
|
+
# Watch-related jobs
|
93
|
+
#
|
94
|
+
|
95
|
+
.PHONY: watch serve watch-serve
|
96
|
+
|
97
|
+
NODE_BINS := onchange live-serve run-p
|
98
|
+
NODE_BIN_DIR := node_modules/.bin
|
99
|
+
NODE_PACKAGE_PATHS := $(foreach PACKAGE_NAME,$(NODE_BINS),$(NODE_BIN_DIR)/$(PACKAGE_NAME))
|
100
|
+
|
101
|
+
$(NODE_PACKAGE_PATHS): package.json
|
102
|
+
npm i
|
103
|
+
|
104
|
+
watch: $(NODE_BIN_DIR)/onchange
|
105
|
+
$(MAKE) all
|
106
|
+
$< $(ALL_SRC) -- $(MAKE) all
|
107
|
+
|
108
|
+
define WATCH_TASKS
|
109
|
+
watch-$(FORMAT): $(NODE_BIN_DIR)/onchange
|
110
|
+
$(MAKE) $(FORMAT)
|
111
|
+
$$< $$(SRC_$(FORMAT)) -- $(MAKE) $(FORMAT)
|
112
|
+
|
113
|
+
.PHONY: watch-$(FORMAT)
|
114
|
+
endef
|
115
|
+
|
116
|
+
$(foreach FORMAT,$(FORMATS),$(eval $(WATCH_TASKS)))
|
117
|
+
|
118
|
+
serve: $(NODE_BIN_DIR)/live-server revealjs-css reveal.js images
|
119
|
+
export PORT=$${PORT:-8123} ; \
|
120
|
+
port=$${PORT} ; \
|
121
|
+
for html in $(HTML); do \
|
122
|
+
$< --entry-file=$$html --port=$${port} --ignore="*.html,*.xml,Makefile,Gemfile.*,package.*.json" --wait=1000 & \
|
123
|
+
port=$$(( port++ )) ;\
|
124
|
+
done
|
125
|
+
|
126
|
+
watch-serve: $(NODE_BIN_DIR)/run-p
|
127
|
+
$< watch serve
|
128
|
+
|
129
|
+
#
|
130
|
+
# Deploy jobs
|
131
|
+
#
|
132
|
+
|
133
|
+
publish:
|
134
|
+
$(MAKE) published
|
135
|
+
|
136
|
+
published:
|
137
|
+
mkdir -p $@ && \
|
138
|
+
export GLOBIGNORE=$(SRC); \
|
139
|
+
cp -a $(addsuffix .*,$(basename $(SRC))) $@/; \
|
140
|
+
unset GLOBIGNORE; \
|
141
|
+
cp $(firstword $(HTML)) $@/index.html
|
142
|
+
|
143
|
+
.PHONY: publish
|
144
|
+
|
@@ -0,0 +1,116 @@
|
|
1
|
+
#!make
|
2
|
+
|
3
|
+
FORMAT_MARKER := mn-output-
|
4
|
+
FORMATS := $(shell grep "$(FORMAT_MARKER)" *.adoc | cut -f 2 -d ' ' | tr ',' '\n' | sort | uniq | tr '\n' ' ')
|
5
|
+
|
6
|
+
SRC := $(filter-out README.adoc, $(wildcard *.adoc))
|
7
|
+
XML := $(patsubst %.adoc,%.xml,$(SRC))
|
8
|
+
HTML := $(patsubst %.adoc,%.html,$(SRC))
|
9
|
+
DOC := $(patsubst %.adoc,%.doc,$(SRC))
|
10
|
+
PDF := $(patsubst %.adoc,%.pdf,$(SRC))
|
11
|
+
WSD := $(wildcard models/*.wsd)
|
12
|
+
XMI := $(patsubst models/%,xmi/%,$(patsubst %.wsd,%.xmi,$(WSD)))
|
13
|
+
PNG := $(patsubst models/%,images/%,$(patsubst %.wsd,%.png,$(WSD)))
|
14
|
+
|
15
|
+
HOST_SHARE_DIR=$(USERPROFILE)\$(shell for %%I in (.) do echo %%~nxI)
|
16
|
+
COMPILE_CMD_LOCAL := bundle exec metanorma $(SRC)
|
17
|
+
COMPILE_CMD_DOCKER := docker run --rm -it -v $(CURDIR):/metanorma/ ribose/metanorma "metanorma $(SRC)"
|
18
|
+
|
19
|
+
ifdef METANORMA_DOCKER
|
20
|
+
COMPILE_CMD := echo "Compiling via docker..." & $(COMPILE_CMD_DOCKER)
|
21
|
+
else
|
22
|
+
COMPILE_CMD := echo "Compiling locally..." & $(COMPILE_CMD_LOCAL)
|
23
|
+
endif
|
24
|
+
|
25
|
+
_OUT_FILES := $(foreach FORMAT,$(FORMATS),$(shell echo $(FORMAT) | tr '[:lower:]' '[:upper:]'))
|
26
|
+
OUT_FILES := $(foreach F,$(_OUT_FILES),$($F))
|
27
|
+
|
28
|
+
all: $(OUT_FILES)
|
29
|
+
|
30
|
+
%.xml %.html %.doc %.pdf: %.adoc | bundle
|
31
|
+
${COMPILE_CMD}
|
32
|
+
|
33
|
+
images: $(PNG)
|
34
|
+
|
35
|
+
images/%.png: models/%.wsd
|
36
|
+
plantuml -tpng -o ../images/ $<
|
37
|
+
|
38
|
+
xmi: $(XMI)
|
39
|
+
|
40
|
+
xmi/%.xmi: models/%.wsd
|
41
|
+
plantuml -xmi:star -o ../xmi/ $<
|
42
|
+
|
43
|
+
define FORMAT_TASKS
|
44
|
+
OUT_FILES-$(FORMAT) := $($(shell echo $(FORMAT) | tr '[:lower:]' '[:upper:]'))
|
45
|
+
|
46
|
+
open-$(FORMAT):
|
47
|
+
$$(OUT_FILES-$(FORMAT))
|
48
|
+
|
49
|
+
clean-$(FORMAT):
|
50
|
+
rm $$(OUT_FILES-$(FORMAT))
|
51
|
+
|
52
|
+
$(FORMAT): clean-$(FORMAT) $$(OUT_FILES-$(FORMAT))
|
53
|
+
|
54
|
+
.PHONY: clean-$(FORMAT)
|
55
|
+
|
56
|
+
endef
|
57
|
+
|
58
|
+
$(foreach FORMAT,$(FORMATS),$(eval $(FORMAT_TASKS)))
|
59
|
+
|
60
|
+
open: open-html
|
61
|
+
|
62
|
+
clean:
|
63
|
+
rm -rf $(OUT_FILES)
|
64
|
+
|
65
|
+
bundle:
|
66
|
+
IF "" == "${METANORMA_DOCKER}" bundle
|
67
|
+
|
68
|
+
.PHONY: bundle all open clean
|
69
|
+
|
70
|
+
#
|
71
|
+
# Watch-related jobs
|
72
|
+
#
|
73
|
+
|
74
|
+
.PHONY: watch serve watch-serve
|
75
|
+
|
76
|
+
NODE_BINS := onchange live-serve run-p
|
77
|
+
NODE_BIN_DIR := node_modules/.bin
|
78
|
+
NODE_PACKAGE_PATHS := $(foreach PACKAGE_NAME,$(NODE_BINS),$(NODE_BIN_DIR)/$(PACKAGE_NAME))
|
79
|
+
|
80
|
+
$(NODE_PACKAGE_PATHS): package.json
|
81
|
+
npm i
|
82
|
+
|
83
|
+
watch: $(NODE_BIN_DIR)/onchange
|
84
|
+
make all
|
85
|
+
$< $(ALL_SRC) -- make all
|
86
|
+
|
87
|
+
define WATCH_TASKS
|
88
|
+
watch-$(FORMAT): $(NODE_BIN_DIR)/onchange
|
89
|
+
make $(FORMAT)
|
90
|
+
$$< $$(SRC_$(FORMAT)) -- make $(FORMAT)
|
91
|
+
|
92
|
+
.PHONY: watch-$(FORMAT)
|
93
|
+
endef
|
94
|
+
|
95
|
+
$(foreach FORMAT,$(FORMATS),$(eval $(WATCH_TASKS)))
|
96
|
+
|
97
|
+
serve: $(NODE_BIN_DIR)/live-server revealjs-css reveal.js images
|
98
|
+
set PORT=$${PORT:-8123} & \
|
99
|
+
set port=$${PORT} & \
|
100
|
+
for /r %%html in $(HTML) do ( \
|
101
|
+
$< --entry-file=%%html --port=%port% --ignore="*.html,*.xml,Makefile,Gemfile.*,package.*.json" --wait=1000 & \
|
102
|
+
set /A port=%port%+1 \
|
103
|
+
)
|
104
|
+
|
105
|
+
watch-serve: $(NODE_BIN_DIR)/run-p
|
106
|
+
$< watch serve
|
107
|
+
|
108
|
+
#
|
109
|
+
# Deploy jobs
|
110
|
+
#
|
111
|
+
|
112
|
+
publish:
|
113
|
+
mkdir -p published
|
114
|
+
xcopy $(basename $(SRC)).* published
|
115
|
+
copy $(firstword $(HTML)) published\index.html
|
116
|
+
IF EXIST "images" xcopy /E images published
|