metanorma-cli 1.3.8.1 → 1.4.1pre2
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/README.adoc +41 -0
- data/lib/metanorma/cli.rb +2 -9
- data/lib/metanorma/cli/command.rb +41 -41
- data/lib/metanorma/cli/commands/site.rb +26 -0
- data/lib/metanorma/cli/errors.rb +1 -0
- data/lib/metanorma/cli/site_generator.rb +134 -0
- data/lib/metanorma/cli/ui.rb +8 -0
- data/lib/metanorma/cli/version.rb +1 -1
- data/metanorma-cli.gemspec +17 -18
- metadata +27 -54
- data/lib/metanorma/cli/setup.rb +0 -73
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a910e2812c1da05b08d76dc9bd6fda1859ef59052c8c902ce11f367bf9fd137
|
4
|
+
data.tar.gz: 32070afaf5c7b460635ae2eb9dc1343259793df5cc6e4e3bebf285310456006f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c54fa10cf2f4131490ad9e6b030c236a4df6d91972be12ad7a0ed99d49693afc49ee14b7f91f2068655e120c38c54dc699887def94d9b9223cc2ed50ef2f299
|
7
|
+
data.tar.gz: 9330606dcef7ee362afea8218244edc79d33820e3416d04a1b7b1b02ef9f3e3dddfcdc7eab62dffe422ac03fcb57e4df86da0910f027bc00b75a43cd718db41b
|
data/README.adoc
CHANGED
@@ -228,6 +228,32 @@ Options:
|
|
228
228
|
-c, [--coverpage=COVERPAGE] # Cover page as Liquid template for collection (currently HTML only)
|
229
229
|
----
|
230
230
|
|
231
|
+
=== List supported doctypes (`metanorma list-doctypes`)
|
232
|
+
|
233
|
+
You want to know what are the supported doctypes and what do they support for
|
234
|
+
input and output format? Well, the `metanorma list-doctypes` can help.
|
235
|
+
|
236
|
+
|
237
|
+
[source,sh]
|
238
|
+
----
|
239
|
+
metanorma list-doctypes
|
240
|
+
----
|
241
|
+
|
242
|
+
|
243
|
+
To list out the details for a specific flavor run the following command:
|
244
|
+
|
245
|
+
[source,sh]
|
246
|
+
----
|
247
|
+
metanorma list-doctypes <flavor>
|
248
|
+
----
|
249
|
+
|
250
|
+
e.g.,
|
251
|
+
|
252
|
+
[source,sh]
|
253
|
+
----
|
254
|
+
metanorma list-doctypes iso
|
255
|
+
----
|
256
|
+
|
231
257
|
=== List supported output formats (`metanorma list-extensions`)
|
232
258
|
|
233
259
|
Need to know what output formats are supported for a given flavor?
|
@@ -285,6 +311,21 @@ repository.
|
|
285
311
|
metanorma template-repo add my-iso https://github.com/you/my-iso-template
|
286
312
|
----
|
287
313
|
|
314
|
+
=== Generate metanorma minisite
|
315
|
+
|
316
|
+
The `site` interface allows you to manage mini site generation using the CLI.
|
317
|
+
To generate a mini site you need to provide the `SOURCE_PATH` and the CLI will
|
318
|
+
take care of compiling each of those files and generate deployable site in the
|
319
|
+
provided output directory.
|
320
|
+
|
321
|
+
This interface also supports a YAML manifest file that can be used to customize
|
322
|
+
the site generation process. You can check more details here: link:./spec/fixtures/metanorma.yml[metanorma.yml]
|
323
|
+
|
324
|
+
[source, sh]
|
325
|
+
----
|
326
|
+
metanorma site generate SOURCE_PATH -o OUTPUT_PATH -c metanorma.yml
|
327
|
+
----
|
328
|
+
|
288
329
|
== Credits
|
289
330
|
|
290
331
|
This gem is developed, maintained and funded by https://www.metanorma.com/docs/getting-started/[Ribose Inc.]
|
data/lib/metanorma/cli.rb
CHANGED
@@ -9,7 +9,8 @@ module Metanorma
|
|
9
9
|
"metanorma-iso",
|
10
10
|
"metanorma-iec",
|
11
11
|
"metanorma-ietf",
|
12
|
-
"metanorma-gb",
|
12
|
+
#"metanorma-gb",
|
13
|
+
"metanorma-bipm",
|
13
14
|
"metanorma-cc",
|
14
15
|
"metanorma-csa",
|
15
16
|
"metanorma-iho",
|
@@ -81,14 +82,6 @@ module Metanorma
|
|
81
82
|
Pathname.new(Dir.home).join(".metanorma")
|
82
83
|
end
|
83
84
|
|
84
|
-
def self.fonts_directory
|
85
|
-
Metanorma::Cli.home_directory.join("fonts")
|
86
|
-
end
|
87
|
-
|
88
|
-
def self.fonts
|
89
|
-
Dir.glob(Metanorma::Cli.fonts_directory.join("**"))
|
90
|
-
end
|
91
|
-
|
92
85
|
def self.writable_templates_path?
|
93
86
|
parent_directory = templates_path.join("..", "..")
|
94
87
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require "thor"
|
2
|
-
require "metanorma/cli/setup"
|
3
2
|
require "metanorma/cli/compiler"
|
4
3
|
require "metanorma/cli/generator"
|
5
4
|
require "metanorma/cli/git_template"
|
6
5
|
require "metanorma/cli/commands/template_repo"
|
6
|
+
require "metanorma/cli/commands/site"
|
7
7
|
require "metanorma"
|
8
8
|
|
9
9
|
module Metanorma
|
@@ -32,6 +32,10 @@ module Metanorma
|
|
32
32
|
option :version, aliases: "-v", desc: "Print version of code (accompanied with -t)"
|
33
33
|
option "output-dir", aliases: "-o", desc: "Directory to save compiled files"
|
34
34
|
|
35
|
+
option :"agree-to-terms", type: :boolean, desc: "Agree / Disagree with all third-party licensing terms presented (WARNING: do know what you are agreeing with!)"
|
36
|
+
option :"no-install-fonts", type: :boolean, desc: "Skip the font installation process"
|
37
|
+
option :"continue-without-fonts", type: :boolean, desc: "Continue processing even when fonts are missing"
|
38
|
+
|
35
39
|
def compile(file_name = nil)
|
36
40
|
if file_name && !options[:version]
|
37
41
|
Metanorma::Cli.load_flavors
|
@@ -54,12 +58,16 @@ module Metanorma
|
|
54
58
|
option :format, aliases: "-x", type: :string, desc: "Formats to generate"
|
55
59
|
option "output-folder", aliases: "-w", required: true, desc: "Directory to save compiled files"
|
56
60
|
option :coverpage, aliases: "-c", desc: "Liquid template"
|
61
|
+
option :"agree-to-terms", type: :boolean, desc: "Agree / Disagree with all third-party licensing terms presented (WARNING: do know what you are agreeing with!)"
|
62
|
+
option :"no-install-fonts", type: :boolean, desc: "Skip the font installation process"
|
63
|
+
option :"continue-without-fonts", type: :boolean, desc: "Continue processing even when fonts are missing"
|
57
64
|
|
58
65
|
def collection(filename = nil)
|
59
66
|
if filename
|
60
67
|
opts = options.dup
|
61
68
|
opts[:format] &&= opts[:format].split(",").map &:to_sym
|
62
69
|
opts[:output_folder] = opts.delete :"output-folder"
|
70
|
+
opts[:compile] = opts.slice("agree-to-terms", "no-install-fonts", "continue-without-fonts").map { |k, v| [k.to_sym, v] }.to_h
|
63
71
|
coll = Metanorma::Collection.parse filename
|
64
72
|
coll.render opts
|
65
73
|
else UI.say("Need to specify a file to process")
|
@@ -86,37 +94,23 @@ module Metanorma
|
|
86
94
|
UI.say("Couldn't load #{type}, please provide a valid type!")
|
87
95
|
end
|
88
96
|
|
89
|
-
desc "
|
90
|
-
|
97
|
+
desc "list-doctypes", "List supported doctypes"
|
98
|
+
def list_doctypes(type = nil)
|
99
|
+
processors = backend_processors
|
91
100
|
|
92
|
-
|
93
|
-
|
94
|
-
:agree_to_terms,
|
95
|
-
type: :boolean,
|
96
|
-
required: false,
|
97
|
-
default: false,
|
98
|
-
desc: "Agree / Disagree with all third-party licensing terms presented (WARNING: do know what you are agreeing with!)",
|
99
|
-
)
|
100
|
-
|
101
|
-
def setup
|
102
|
-
list_required_fonts.each do |font|
|
103
|
-
begin
|
104
|
-
Metanorma::Cli::Setup.run(
|
105
|
-
font: font,
|
106
|
-
term_agreement: options[:agree_to_terms],
|
107
|
-
)
|
108
|
-
rescue Fontist::Errors::LicensingError
|
109
|
-
UI.error(
|
110
|
-
"[error]: License acceptance required to install a necessary font." \
|
111
|
-
"Accept required licenses with: `metanorma setup --agree-to-terms`."
|
112
|
-
)
|
113
|
-
return
|
114
|
-
rescue Fontist::Errors::NonSupportedFontError
|
115
|
-
UI.say("[info]: The font `#{font}` is not yet supported.")
|
116
|
-
end
|
101
|
+
if type && processors[type.to_sym]
|
102
|
+
processors = { type.to_sym => processors[type.to_sym] }
|
117
103
|
end
|
104
|
+
|
105
|
+
print_doctypes_table(processors)
|
118
106
|
end
|
119
107
|
|
108
|
+
desc "template-repo", "Manage metanorma templates repository"
|
109
|
+
subcommand :template_repo, Metanorma::Cli::Commands::TemplateRepo
|
110
|
+
|
111
|
+
desc "site", "Manage site for metanorma collections"
|
112
|
+
subcommand :site, Metanorma::Cli::Commands::Site
|
113
|
+
|
120
114
|
private
|
121
115
|
|
122
116
|
def single_type_extensions(type)
|
@@ -145,6 +139,13 @@ module Metanorma
|
|
145
139
|
end
|
146
140
|
end
|
147
141
|
|
142
|
+
def backend_processors
|
143
|
+
@backend_processors ||= (
|
144
|
+
Metanorma::Cli.load_flavors
|
145
|
+
Metanorma::Registry.instance.processors
|
146
|
+
)
|
147
|
+
end
|
148
|
+
|
148
149
|
def find_backend(type)
|
149
150
|
load_flavours(type)
|
150
151
|
Metanorma::Registry.instance.find_processor(type&.to_sym)
|
@@ -175,25 +176,24 @@ module Metanorma
|
|
175
176
|
)
|
176
177
|
end
|
177
178
|
|
178
|
-
def list_required_fonts
|
179
|
-
Metanorma::Cli.load_flavors
|
180
|
-
|
181
|
-
Metanorma::Registry.instance.processors.map do |_key, processor|
|
182
|
-
flavour = processor.class.to_s.gsub("::Processor", "")
|
183
|
-
flavour_module = Object.const_get(flavour)
|
184
|
-
|
185
|
-
if flavour_module.respond_to?(:fonts_used)
|
186
|
-
flavour_module.fonts_used.map { |_, value| value }.flatten
|
187
|
-
end
|
188
|
-
end.compact.flatten.uniq
|
189
|
-
end
|
190
|
-
|
191
179
|
def load_flavours(type)
|
192
180
|
Metanorma::Cli.load_flavors
|
193
181
|
unless Metanorma::Registry.instance.find_processor(type&.to_sym)
|
194
182
|
require "metanorma-#{type}"
|
195
183
|
end
|
196
184
|
end
|
185
|
+
|
186
|
+
def print_doctypes_table(processors)
|
187
|
+
table_data = processors.map do |type_sym, processor|
|
188
|
+
[
|
189
|
+
type_sym.to_s,
|
190
|
+
processor.input_format,
|
191
|
+
join_keys(processor.output_formats.keys),
|
192
|
+
]
|
193
|
+
end
|
194
|
+
|
195
|
+
UI.table(["Type", "Input", "Supported output format"], table_data)
|
196
|
+
end
|
197
197
|
end
|
198
198
|
end
|
199
199
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "pathname"
|
2
|
+
require "metanorma/cli/site_generator"
|
3
|
+
|
4
|
+
module Metanorma
|
5
|
+
module Cli
|
6
|
+
module Commands
|
7
|
+
class Site < Thor
|
8
|
+
desc "generate SOURCE_PATH", "Geneate site from collection"
|
9
|
+
option :config, aliases: "-c", desc: "The metanorma configuration file"
|
10
|
+
option(
|
11
|
+
:output_dir,
|
12
|
+
aliases: "-o",
|
13
|
+
default: Pathname.new(Dir.pwd).join("site").to_s,
|
14
|
+
desc: "Output directory for the generated site",
|
15
|
+
)
|
16
|
+
|
17
|
+
def generate(source_path)
|
18
|
+
Cli::SiteGenerator.generate(source_path, options.dup)
|
19
|
+
UI.say("Site has been generated at #{options[:output_dir]}")
|
20
|
+
rescue Cli::Errors::InvalidManifestFileError
|
21
|
+
UI.error("Invalid data in: #{options[:config]}")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/metanorma/cli/errors.rb
CHANGED
@@ -0,0 +1,134 @@
|
|
1
|
+
require "yaml"
|
2
|
+
require "pathname"
|
3
|
+
require "fileutils"
|
4
|
+
|
5
|
+
module Metanorma
|
6
|
+
module Cli
|
7
|
+
class SiteGenerator
|
8
|
+
def initialize(source, options = {})
|
9
|
+
@source = find_realpath(source)
|
10
|
+
@site_path = options.fetch(:output_dir, "site").to_s
|
11
|
+
@asset_folder = options.fetch(:asset_folder, "documents").to_s
|
12
|
+
@collection_name = options.fetch(:collection_name, "documents.xml")
|
13
|
+
@manifest_file = find_realpath(options.fetch(:config, default_config))
|
14
|
+
|
15
|
+
ensure_site_asset_directory!
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.generate(source, options = {})
|
19
|
+
new(source, options).generate
|
20
|
+
end
|
21
|
+
|
22
|
+
def generate
|
23
|
+
site_directory = asset_directory.join("..")
|
24
|
+
select_source_files.each { |source| compile(source) }
|
25
|
+
|
26
|
+
Dir.chdir(site_directory) do
|
27
|
+
build_collection_file(collection_name)
|
28
|
+
convert_to_html_page(collection_name, "index.html")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
attr_reader :source, :asset_folder, :asset_directory
|
35
|
+
attr_reader :site_path, :manifest_file, :collection_name
|
36
|
+
|
37
|
+
def find_realpath(source_path)
|
38
|
+
Pathname.new(source_path.to_s).realpath if source_path
|
39
|
+
rescue Errno::ENOENT
|
40
|
+
source_path
|
41
|
+
end
|
42
|
+
|
43
|
+
def default_config
|
44
|
+
default_file = Pathname.new(Dir.pwd).join("metanorma.yml")
|
45
|
+
default_file if File.exist?(default_file)
|
46
|
+
end
|
47
|
+
|
48
|
+
def select_source_files
|
49
|
+
files = source_from_manifest
|
50
|
+
|
51
|
+
if files.empty?
|
52
|
+
files = Dir[File.join(source, "**", "*.adoc")]
|
53
|
+
end
|
54
|
+
|
55
|
+
files.flatten.uniq.reject { |file| File.directory?(file) }
|
56
|
+
end
|
57
|
+
|
58
|
+
def build_collection_file(collection_name)
|
59
|
+
collection_path = [site_path, collection_name].join("/")
|
60
|
+
UI.info("Building collection file: #{collection_path} ...")
|
61
|
+
|
62
|
+
Relaton::Cli::RelatonFile.concatenate(
|
63
|
+
asset_folder,
|
64
|
+
collection_name,
|
65
|
+
title: manifest[:collection_name],
|
66
|
+
organization: manifest[:collection_organization],
|
67
|
+
)
|
68
|
+
end
|
69
|
+
|
70
|
+
def compile(source)
|
71
|
+
UI.info("Compiling #{source} ...")
|
72
|
+
|
73
|
+
Metanorma::Cli::Compiler.compile(
|
74
|
+
source.to_s, format: :asciidoc, "output-dir" => asset_directory
|
75
|
+
)
|
76
|
+
end
|
77
|
+
|
78
|
+
def convert_to_html_page(collection, page_name)
|
79
|
+
UI.info("Generating html site in #{site_path} ...")
|
80
|
+
|
81
|
+
Relaton::Cli::XMLConvertor.to_html(collection)
|
82
|
+
File.rename(Pathname.new(collection).sub_ext(".html").to_s, page_name)
|
83
|
+
end
|
84
|
+
|
85
|
+
def manifest
|
86
|
+
@manifest ||= config_from_manifest || {
|
87
|
+
files: [], collection_name: "", collection_organization: ""
|
88
|
+
}
|
89
|
+
end
|
90
|
+
|
91
|
+
def config_from_manifest
|
92
|
+
if manifest_file
|
93
|
+
manifest_config(YAML.safe_load(File.read(manifest_file.to_s)))
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def manifest_config(manifest)
|
98
|
+
{
|
99
|
+
files: extract_config_data(
|
100
|
+
manifest["metanorma"]["source"], "files"
|
101
|
+
) || [],
|
102
|
+
|
103
|
+
collection_name: extract_config_data(
|
104
|
+
manifest["relaton"]["collection"], "name"
|
105
|
+
),
|
106
|
+
|
107
|
+
collection_organization: extract_config_data(
|
108
|
+
manifest["relaton"]["collection"], "organization"
|
109
|
+
),
|
110
|
+
}
|
111
|
+
rescue NoMethodError
|
112
|
+
raise Errors::InvalidManifestFileError.new("Invalid manifest file")
|
113
|
+
end
|
114
|
+
|
115
|
+
def extract_config_data(node, key)
|
116
|
+
node ? node[key] : nil
|
117
|
+
end
|
118
|
+
|
119
|
+
def source_from_manifest
|
120
|
+
@source_from_manifest ||= manifest[:files].map do |source_file|
|
121
|
+
file_path = source.join(source_file).to_s
|
122
|
+
file_path.include?("*") ? Dir.glob(file_path) : file_path
|
123
|
+
end.flatten
|
124
|
+
end
|
125
|
+
|
126
|
+
def ensure_site_asset_directory!
|
127
|
+
asset_path = [site_path, asset_folder].join("/")
|
128
|
+
@asset_directory = Pathname.new(Dir.pwd).join(asset_path)
|
129
|
+
|
130
|
+
FileUtils.mkdir_p(@asset_directory) unless @asset_directory.exist?
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
data/lib/metanorma/cli/ui.rb
CHANGED
@@ -11,10 +11,18 @@ module Metanorma
|
|
11
11
|
new.say(message)
|
12
12
|
end
|
13
13
|
|
14
|
+
def self.info(message)
|
15
|
+
new.say(["[info]", message].join(": "))
|
16
|
+
end
|
17
|
+
|
14
18
|
def self.error(message)
|
15
19
|
new.error(message)
|
16
20
|
end
|
17
21
|
|
22
|
+
def self.table(header, data)
|
23
|
+
new.print_table(data.unshift(header))
|
24
|
+
end
|
25
|
+
|
18
26
|
def self.run(command)
|
19
27
|
require "open3"
|
20
28
|
Open3.capture3(command)
|
data/metanorma-cli.gemspec
CHANGED
@@ -29,7 +29,6 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
30
30
|
spec.add_development_dependency "byebug", "~> 10.0"
|
31
31
|
spec.add_development_dependency "rspec-command", "~> 1.0.3"
|
32
|
-
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
33
32
|
spec.add_development_dependency "rspec-core", "~> 3.4"
|
34
33
|
spec.add_development_dependency "vcr", "~> 5.0.0"
|
35
34
|
spec.add_development_dependency "webmock"
|
@@ -38,25 +37,25 @@ Gem::Specification.new do |spec|
|
|
38
37
|
spec.add_development_dependency "sassc"
|
39
38
|
|
40
39
|
spec.add_runtime_dependency "thor", "~> 1.0"
|
41
|
-
spec.add_runtime_dependency "metanorma-iso", "~> 1.
|
42
|
-
spec.add_runtime_dependency
|
43
|
-
spec.add_runtime_dependency
|
44
|
-
spec.add_runtime_dependency
|
45
|
-
spec.add_runtime_dependency
|
46
|
-
spec.add_runtime_dependency
|
40
|
+
spec.add_runtime_dependency "metanorma-iso", "~> 1.6.0"
|
41
|
+
spec.add_runtime_dependency "metanorma-ietf", "~> 2.2.0"
|
42
|
+
#spec.add_runtime_dependency "metanorma-gb", "~> 1.5.0"
|
43
|
+
spec.add_runtime_dependency "metanorma-iec", "~> 1.2.0"
|
44
|
+
spec.add_runtime_dependency "metanorma-cc", "~> 1.6.0"
|
45
|
+
spec.add_runtime_dependency "metanorma-csa", "~> 1.7.0"
|
47
46
|
#spec.add_runtime_dependency 'metanorma-ribose', "~> 1.6.0"
|
48
|
-
spec.add_runtime_dependency
|
49
|
-
spec.add_runtime_dependency
|
50
|
-
spec.add_runtime_dependency
|
47
|
+
spec.add_runtime_dependency "metanorma-m3aawg", "~> 1.6.0"
|
48
|
+
spec.add_runtime_dependency "metanorma-bipm", "~> 1.0.0"
|
49
|
+
spec.add_runtime_dependency "metanorma-generic", "~> 1.8.2"
|
50
|
+
spec.add_runtime_dependency "metanorma-standoc", "~> 1.7.0"
|
51
51
|
#spec.add_runtime_dependency 'metanorma-mpfa', "~> 0.5.0"
|
52
|
-
spec.add_runtime_dependency
|
53
|
-
spec.add_runtime_dependency
|
54
|
-
spec.add_runtime_dependency
|
55
|
-
spec.add_runtime_dependency
|
56
|
-
spec.add_runtime_dependency
|
57
|
-
spec.add_runtime_dependency
|
58
|
-
spec.add_runtime_dependency
|
52
|
+
spec.add_runtime_dependency "metanorma-un", "~> 0.5.0"
|
53
|
+
spec.add_runtime_dependency "metanorma-ogc", "~> 1.2.0"
|
54
|
+
spec.add_runtime_dependency "metanorma-nist", "~> 1.2.0"
|
55
|
+
spec.add_runtime_dependency "metanorma-itu", "~> 1.2.0"
|
56
|
+
spec.add_runtime_dependency "metanorma-iho", "~> 0.2.0"
|
57
|
+
spec.add_runtime_dependency "isodoc", ">= 1.4.2"
|
58
|
+
spec.add_runtime_dependency "metanorma", "~> 1.2.0"
|
59
59
|
spec.add_runtime_dependency "git", "~> 1.5"
|
60
60
|
spec.add_runtime_dependency "relaton-cli", ">= 0.8.2"
|
61
|
-
spec.add_runtime_dependency "fontist", "~> 1.3.0"
|
62
61
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.1pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 1.0.3
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: equivalent-xml
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0.6'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0.6'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rspec-core
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,14 +170,14 @@ dependencies:
|
|
184
170
|
requirements:
|
185
171
|
- - "~>"
|
186
172
|
- !ruby/object:Gem::Version
|
187
|
-
version: 1.
|
173
|
+
version: 1.6.0
|
188
174
|
type: :runtime
|
189
175
|
prerelease: false
|
190
176
|
version_requirements: !ruby/object:Gem::Requirement
|
191
177
|
requirements:
|
192
178
|
- - "~>"
|
193
179
|
- !ruby/object:Gem::Version
|
194
|
-
version: 1.
|
180
|
+
version: 1.6.0
|
195
181
|
- !ruby/object:Gem::Dependency
|
196
182
|
name: metanorma-ietf
|
197
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -207,49 +193,49 @@ dependencies:
|
|
207
193
|
- !ruby/object:Gem::Version
|
208
194
|
version: 2.2.0
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
|
-
name: metanorma-
|
196
|
+
name: metanorma-iec
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
212
198
|
requirements:
|
213
199
|
- - "~>"
|
214
200
|
- !ruby/object:Gem::Version
|
215
|
-
version: 1.
|
201
|
+
version: 1.2.0
|
216
202
|
type: :runtime
|
217
203
|
prerelease: false
|
218
204
|
version_requirements: !ruby/object:Gem::Requirement
|
219
205
|
requirements:
|
220
206
|
- - "~>"
|
221
207
|
- !ruby/object:Gem::Version
|
222
|
-
version: 1.
|
208
|
+
version: 1.2.0
|
223
209
|
- !ruby/object:Gem::Dependency
|
224
|
-
name: metanorma-
|
210
|
+
name: metanorma-cc
|
225
211
|
requirement: !ruby/object:Gem::Requirement
|
226
212
|
requirements:
|
227
213
|
- - "~>"
|
228
214
|
- !ruby/object:Gem::Version
|
229
|
-
version: 1.
|
215
|
+
version: 1.6.0
|
230
216
|
type: :runtime
|
231
217
|
prerelease: false
|
232
218
|
version_requirements: !ruby/object:Gem::Requirement
|
233
219
|
requirements:
|
234
220
|
- - "~>"
|
235
221
|
- !ruby/object:Gem::Version
|
236
|
-
version: 1.
|
222
|
+
version: 1.6.0
|
237
223
|
- !ruby/object:Gem::Dependency
|
238
|
-
name: metanorma-
|
224
|
+
name: metanorma-csa
|
239
225
|
requirement: !ruby/object:Gem::Requirement
|
240
226
|
requirements:
|
241
227
|
- - "~>"
|
242
228
|
- !ruby/object:Gem::Version
|
243
|
-
version: 1.
|
229
|
+
version: 1.7.0
|
244
230
|
type: :runtime
|
245
231
|
prerelease: false
|
246
232
|
version_requirements: !ruby/object:Gem::Requirement
|
247
233
|
requirements:
|
248
234
|
- - "~>"
|
249
235
|
- !ruby/object:Gem::Version
|
250
|
-
version: 1.
|
236
|
+
version: 1.7.0
|
251
237
|
- !ruby/object:Gem::Dependency
|
252
|
-
name: metanorma-
|
238
|
+
name: metanorma-m3aawg
|
253
239
|
requirement: !ruby/object:Gem::Requirement
|
254
240
|
requirements:
|
255
241
|
- - "~>"
|
@@ -263,47 +249,47 @@ dependencies:
|
|
263
249
|
- !ruby/object:Gem::Version
|
264
250
|
version: 1.6.0
|
265
251
|
- !ruby/object:Gem::Dependency
|
266
|
-
name: metanorma-
|
252
|
+
name: metanorma-bipm
|
267
253
|
requirement: !ruby/object:Gem::Requirement
|
268
254
|
requirements:
|
269
255
|
- - "~>"
|
270
256
|
- !ruby/object:Gem::Version
|
271
|
-
version: 1.
|
257
|
+
version: 1.0.0
|
272
258
|
type: :runtime
|
273
259
|
prerelease: false
|
274
260
|
version_requirements: !ruby/object:Gem::Requirement
|
275
261
|
requirements:
|
276
262
|
- - "~>"
|
277
263
|
- !ruby/object:Gem::Version
|
278
|
-
version: 1.
|
264
|
+
version: 1.0.0
|
279
265
|
- !ruby/object:Gem::Dependency
|
280
266
|
name: metanorma-generic
|
281
267
|
requirement: !ruby/object:Gem::Requirement
|
282
268
|
requirements:
|
283
269
|
- - "~>"
|
284
270
|
- !ruby/object:Gem::Version
|
285
|
-
version: 1.
|
271
|
+
version: 1.8.2
|
286
272
|
type: :runtime
|
287
273
|
prerelease: false
|
288
274
|
version_requirements: !ruby/object:Gem::Requirement
|
289
275
|
requirements:
|
290
276
|
- - "~>"
|
291
277
|
- !ruby/object:Gem::Version
|
292
|
-
version: 1.
|
278
|
+
version: 1.8.2
|
293
279
|
- !ruby/object:Gem::Dependency
|
294
280
|
name: metanorma-standoc
|
295
281
|
requirement: !ruby/object:Gem::Requirement
|
296
282
|
requirements:
|
297
283
|
- - "~>"
|
298
284
|
- !ruby/object:Gem::Version
|
299
|
-
version: 1.
|
285
|
+
version: 1.7.0
|
300
286
|
type: :runtime
|
301
287
|
prerelease: false
|
302
288
|
version_requirements: !ruby/object:Gem::Requirement
|
303
289
|
requirements:
|
304
290
|
- - "~>"
|
305
291
|
- !ruby/object:Gem::Version
|
306
|
-
version: 1.
|
292
|
+
version: 1.7.0
|
307
293
|
- !ruby/object:Gem::Dependency
|
308
294
|
name: metanorma-un
|
309
295
|
requirement: !ruby/object:Gem::Requirement
|
@@ -380,14 +366,14 @@ dependencies:
|
|
380
366
|
requirements:
|
381
367
|
- - ">="
|
382
368
|
- !ruby/object:Gem::Version
|
383
|
-
version: 1.2
|
369
|
+
version: 1.4.2
|
384
370
|
type: :runtime
|
385
371
|
prerelease: false
|
386
372
|
version_requirements: !ruby/object:Gem::Requirement
|
387
373
|
requirements:
|
388
374
|
- - ">="
|
389
375
|
- !ruby/object:Gem::Version
|
390
|
-
version: 1.2
|
376
|
+
version: 1.4.2
|
391
377
|
- !ruby/object:Gem::Dependency
|
392
378
|
name: metanorma
|
393
379
|
requirement: !ruby/object:Gem::Requirement
|
@@ -430,20 +416,6 @@ dependencies:
|
|
430
416
|
- - ">="
|
431
417
|
- !ruby/object:Gem::Version
|
432
418
|
version: 0.8.2
|
433
|
-
- !ruby/object:Gem::Dependency
|
434
|
-
name: fontist
|
435
|
-
requirement: !ruby/object:Gem::Requirement
|
436
|
-
requirements:
|
437
|
-
- - "~>"
|
438
|
-
- !ruby/object:Gem::Version
|
439
|
-
version: 1.3.0
|
440
|
-
type: :runtime
|
441
|
-
prerelease: false
|
442
|
-
version_requirements: !ruby/object:Gem::Requirement
|
443
|
-
requirements:
|
444
|
-
- - "~>"
|
445
|
-
- !ruby/object:Gem::Version
|
446
|
-
version: 1.3.0
|
447
419
|
description: Executable to process any Metanorma standard.
|
448
420
|
email:
|
449
421
|
- open.source@ribose.com
|
@@ -489,12 +461,13 @@ files:
|
|
489
461
|
- lib/metanorma-cli.rb
|
490
462
|
- lib/metanorma/cli.rb
|
491
463
|
- lib/metanorma/cli/command.rb
|
464
|
+
- lib/metanorma/cli/commands/site.rb
|
492
465
|
- lib/metanorma/cli/commands/template_repo.rb
|
493
466
|
- lib/metanorma/cli/compiler.rb
|
494
467
|
- lib/metanorma/cli/errors.rb
|
495
468
|
- lib/metanorma/cli/generator.rb
|
496
469
|
- lib/metanorma/cli/git_template.rb
|
497
|
-
- lib/metanorma/cli/
|
470
|
+
- lib/metanorma/cli/site_generator.rb
|
498
471
|
- lib/metanorma/cli/template_repo.rb
|
499
472
|
- lib/metanorma/cli/ui.rb
|
500
473
|
- lib/metanorma/cli/version.rb
|
@@ -518,9 +491,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
518
491
|
version: 2.4.0
|
519
492
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
520
493
|
requirements:
|
521
|
-
- - "
|
494
|
+
- - ">"
|
522
495
|
- !ruby/object:Gem::Version
|
523
|
-
version:
|
496
|
+
version: 1.3.1
|
524
497
|
requirements: []
|
525
498
|
rubygems_version: 3.0.3
|
526
499
|
signing_key:
|
data/lib/metanorma/cli/setup.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
require "fontist"
|
2
|
-
require "fileutils"
|
3
|
-
|
4
|
-
module Metanorma
|
5
|
-
module Cli
|
6
|
-
class Setup
|
7
|
-
def initialize(options)
|
8
|
-
@options = options
|
9
|
-
@font_name = options.fetch(:font)
|
10
|
-
@term_agreement = options.fetch(:term_agreement, false)
|
11
|
-
|
12
|
-
create_metanorma_fonts_directory
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.run(options = {})
|
16
|
-
new(options).run
|
17
|
-
end
|
18
|
-
|
19
|
-
def run
|
20
|
-
font = Metanorma::Cli.fonts.grep(/#{font_name}/i)
|
21
|
-
|
22
|
-
if font.empty?
|
23
|
-
font_paths = download_font
|
24
|
-
copy_to_fonts(font_paths)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
attr_reader :font_name, :options, :term_agreement
|
31
|
-
|
32
|
-
def create_metanorma_fonts_directory
|
33
|
-
unless Metanorma::Cli.fonts_directory.exist?
|
34
|
-
FileUtils.mkdir_p(Metanorma::Cli.fonts_directory)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def metanorma_fonts_path
|
39
|
-
@metanorma_fonts_path ||= Metanorma::Cli.fonts_directory
|
40
|
-
end
|
41
|
-
|
42
|
-
def download_font
|
43
|
-
begin
|
44
|
-
Fontist::Font.find(font_name)
|
45
|
-
rescue Fontist::Errors::MissingFontError
|
46
|
-
process_font_installation(font_name)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def copy_to_fonts(fonts_path)
|
51
|
-
fonts_path.each do |font_path|
|
52
|
-
font_name = File.basename(font_path)
|
53
|
-
FileUtils.copy_file(font_path, metanorma_fonts_path.join(font_name))
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def process_font_installation(font_name)
|
58
|
-
accepted_agreement = term_agreement == true ? "yes" : "no"
|
59
|
-
|
60
|
-
UI.say(missing_font_message) if !term_agreement
|
61
|
-
Fontist::Font.install(font_name, confirmation: accepted_agreement)
|
62
|
-
end
|
63
|
-
|
64
|
-
def missing_font_message
|
65
|
-
<<~MSG
|
66
|
-
Your system does not have the necessary fonts installed for
|
67
|
-
PDF generation. Without these fonts, the generated PDF will use
|
68
|
-
generic fonts that may not resemble the desired styling.\n
|
69
|
-
MSG
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|