hyla 1.0.7.pre.7 → 1.0.7.pre.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/bin/hyla +18 -8
- data/hyla.gemspec +1 -1
- data/lib/{templates → configs}/_config.yaml +9 -0
- data/lib/configs/log4r.yaml +32 -0
- data/lib/hyla.rb +21 -1
- data/lib/hyla/Logger2.rb +153 -0
- data/lib/hyla/command.rb +2 -2
- data/lib/hyla/commands/add.rb +2 -2
- data/lib/hyla/commands/build.rb +6 -6
- data/lib/hyla/commands/generate.rb +36 -36
- data/lib/hyla/commands/new.rb +9 -9
- data/lib/hyla/commands/reload.rb +12 -12
- data/lib/hyla/commands/sendmail.rb +1 -1
- data/lib/hyla/commands/serve.rb +3 -3
- data/lib/hyla/commands/watch.rb +15 -15
- data/lib/hyla/configuration.rb +17 -21
- data/lib/hyla/logger.rb +1 -0
- data/lib/hyla/project.rb +1 -1
- data/lib/hyla/websocket.rb +1 -1
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MThiYzA4ZmM3OGExMDc3MTZhZTIwYzI2ZWM4YTZhZGJlMWQ0YzFmNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTEwMzA4NTkzMmI5MDVjMWUzNGUwZTU5N2I4ZDM2MTgxODVkM2IxMw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzlkOWRhYzBlYjEyNzk0OGEzY2ZiMjYxYTczZjQzMjg5Y2I3MjRlZTFmODkw
|
10
|
+
MzM0ZWJjOTc2OWIzOGIyNDZjMDA4YWJjNWIzNDg2ZWIyYzk3YzkyZTgzMWYx
|
11
|
+
ZTY3YWE3OTUxNGM4OTc0N2M0M2ZmZmJkY2ZlZjA5YjhmY2Q2YjI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
M2Q5MTg0YzM3MmFjMThiMDJiOGIxZWFkMjY1NGNjNDY3YjY5M2NlZTIwOTc2
|
14
|
+
MzUyZmJlMmY0ODU3NTFlZWU2NWJhNzNlYmYxZGYyMjA5M2RiODZkYzVlNzlm
|
15
|
+
MjlkMDljYmJiOTI1ZTVhZTRiYjYyZWM4M2JhNGJkOWMxMzRmNzI=
|
data/bin/hyla
CHANGED
@@ -17,8 +17,11 @@ program :description, Hyla::DESCRIPTION
|
|
17
17
|
|
18
18
|
default_command :default
|
19
19
|
|
20
|
+
$cmd_directory = Dir.getwd
|
21
|
+
|
20
22
|
def add_build_options(c)
|
21
|
-
c.option '-c', '--config CONFIG_FILE', String, '
|
23
|
+
c.option '-c', '--config CONFIG_FILE', String, 'Hyla Yaml configuration file'
|
24
|
+
c.option '-l', '--log LOG_YML_FILE', String, 'Log4r Yaml configuration file'
|
22
25
|
c.option '-V', '--verbose', 'Print verbose output.'
|
23
26
|
end
|
24
27
|
|
@@ -39,12 +42,13 @@ command :new do |c|
|
|
39
42
|
c.option '-b', '--blank', 'Creates project directory containing the YAML config file and a simple readme.ad file'
|
40
43
|
c.option '--t', '--template_type [TEMPLATE_TYPE]', String, 'Template Type to be used (documentation, book, training, training-exercises, blog, web, ...)'
|
41
44
|
|
42
|
-
c
|
45
|
+
add_build_options(c)
|
43
46
|
|
44
47
|
c.action do |args, options|
|
45
48
|
if args.first.nil?
|
46
49
|
puts "Please specify the PATH where the project should be created."
|
47
50
|
else
|
51
|
+
$options = options.__hash__
|
48
52
|
config = Hyla::Configuration.parse(options.__hash__)
|
49
53
|
Hyla::Commands::New.process(args, config)
|
50
54
|
end
|
@@ -64,6 +68,7 @@ command :add do |c|
|
|
64
68
|
add_build_options(c)
|
65
69
|
|
66
70
|
c.action do |args, options|
|
71
|
+
$options = options.__hash__
|
67
72
|
config = Hyla::Configuration.parse(options.__hash__)
|
68
73
|
Hyla::Commands::Add.process(args, config)
|
69
74
|
end
|
@@ -82,17 +87,19 @@ command :generate do |c|
|
|
82
87
|
c.option '--t', '--toc [PATH]', String, 'File Path of the asciidoc file containing the Table of Content'
|
83
88
|
c.option '-y', '--style [STYLE]', String, 'Stylesheet theme to be applied : asciidoctor, liberation, github, colony, foundation, ...'
|
84
89
|
c.option '-a', '--attributes [KEY=VALUE,KEY=VALUE]', String, 'Asciidoctor attributes'
|
85
|
-
c.option '-o', '--cover_image [PNG FILE NAME]', String, 'Name of the cover png image file generated'
|
86
90
|
c.option '-s', '--snippet_content [FLAG TRUE or FALSE]', String, 'Flag used to generate HTML content using the // tag::snippet[].'
|
87
|
-
|
88
|
-
c.option '
|
89
|
-
c.option '
|
90
|
-
c.option '
|
91
|
+
|
92
|
+
c.option '--course_name [COURSE NAME]', String, 'Name of the course'
|
93
|
+
c.option '--cover_file [HTML FILE NAME]', String, 'Name of the cover html image file generated'
|
94
|
+
c.option '--cover_image [PNG FILE NAME]', String, 'Name of the cover png image file generated'
|
95
|
+
c.option '--module_name [MODULE NAME]', String, 'Name of the module'
|
96
|
+
c.option '--image_path [BACKGROUND IMAGE]', String, 'Location of the file used as background'
|
91
97
|
|
92
98
|
add_common_options(c)
|
93
99
|
add_build_options(c)
|
94
100
|
|
95
101
|
c.action do |args, options|
|
102
|
+
$options = options.__hash__
|
96
103
|
config = Hyla::Configuration.parse(options.__hash__)
|
97
104
|
Hyla::Commands::Generate.process(args, config)
|
98
105
|
end
|
@@ -111,6 +118,7 @@ command :watch do |c|
|
|
111
118
|
# TODO Find if it is possible to watch files, generate HTML content - asciidoctor, expose content using HTTPServer and expose WebSocket - LiveReload
|
112
119
|
# as they are started in 2 different threads, this is not possible with existing code
|
113
120
|
# Hyla::Commands::Serve.process(args,options.__hash__)
|
121
|
+
$options = options.__hash__
|
114
122
|
config = Hyla::Configuration.parse(options.__hash__)
|
115
123
|
Hyla::Commands::Watch.process(args, config)
|
116
124
|
end
|
@@ -131,6 +139,7 @@ command :serve do |c|
|
|
131
139
|
add_build_options(c)
|
132
140
|
|
133
141
|
c.action do |args, options|
|
142
|
+
$options = options.__hash__
|
134
143
|
options.default :serving => true
|
135
144
|
config = Hyla::Configuration.parse(options.__hash__)
|
136
145
|
Hyla::Commands::Serve.process(args, config)
|
@@ -145,7 +154,7 @@ command :sendmail do |c|
|
|
145
154
|
c.syntax = 'hyla sendmail [options]'
|
146
155
|
c.description = 'Send as HTML Attachment an email to the SMTP Server defined'
|
147
156
|
c.option '-f', '--file [File]', String, 'File to be attached'
|
148
|
-
c.option '-
|
157
|
+
c.option '-p', '--path [PATH]', String, 'Directory containing file to be attached'
|
149
158
|
c.option '-a', '--attachment [boolean]', 'Attach to the email the HTML generated'
|
150
159
|
c.option '-e', '--email_attributes [KEY=VALUE,KEY=VALUE]', String, 'Email attributes used to configure smtp server, port number, user password, authentication mode, sender, recipient, subject'
|
151
160
|
|
@@ -154,6 +163,7 @@ command :sendmail do |c|
|
|
154
163
|
|
155
164
|
c.action do |args, options|
|
156
165
|
|
166
|
+
$options = options.__hash__
|
157
167
|
options.default :attachment => false
|
158
168
|
|
159
169
|
config = Hyla::Configuration.parse(options.__hash__)
|
data/hyla.gemspec
CHANGED
@@ -51,7 +51,7 @@ Gem::Specification.new do |s|
|
|
51
51
|
s.add_runtime_dependency 'tilt', '~> 1.4'
|
52
52
|
s.add_runtime_dependency 'thor', '~> 0.18'
|
53
53
|
s.add_runtime_dependency 'wkhtmltopdf-binary', '~> 0.9'
|
54
|
-
|
54
|
+
s.add_runtime_dependency 'log4r', '~> 1.1'
|
55
55
|
|
56
56
|
|
57
57
|
# Colorize Text Terminal
|
@@ -5,6 +5,15 @@ source: .
|
|
5
5
|
destination: generated_content # or . or ~/Hyla or generated_content
|
6
6
|
# end common options
|
7
7
|
|
8
|
+
#
|
9
|
+
# Logging
|
10
|
+
#
|
11
|
+
mode: production # Default value = production. Available : 'production', 'development"
|
12
|
+
tracer: 'false' #Default value is false. Can be true or false
|
13
|
+
level: 'INFO' # Values available : DEBUG, INFO, WARN, ERROR, FATAL. Default for production : 'WARN' and development 'DEBUG'
|
14
|
+
dirname: # Directory where the log files will be saved
|
15
|
+
logname: hyla.log # Name of the log file
|
16
|
+
|
8
17
|
#
|
9
18
|
# Styles
|
10
19
|
# Supported : liberation, asciidoctor, colony, foundation, foundation-lime, foundation-potion, github, golo, iconic, maker, readthedocs, riak, rocket-panda, rubygems
|
@@ -0,0 +1,32 @@
|
|
1
|
+
log4r_config:
|
2
|
+
# define all loggers ...
|
3
|
+
loggers:
|
4
|
+
- name : production
|
5
|
+
level : "LOGGING_LEVEL"
|
6
|
+
trace : "TRACER"
|
7
|
+
outputters:
|
8
|
+
- logfile
|
9
|
+
- name : development
|
10
|
+
level : "LOGGING_LEVEL"
|
11
|
+
trace : "TRACER"
|
12
|
+
outputters:
|
13
|
+
- stdout
|
14
|
+
- logfile
|
15
|
+
|
16
|
+
# define all outputters (incl. formatters)
|
17
|
+
outputters:
|
18
|
+
- type : StdoutOutputter
|
19
|
+
name : stdout
|
20
|
+
formatter:
|
21
|
+
date_pattern: '%Y-%m-%d %H:%M:%S'
|
22
|
+
pattern : '%d %l: %m '
|
23
|
+
type : PatternFormatter
|
24
|
+
|
25
|
+
- type : DateFileOutputter
|
26
|
+
name : logfile
|
27
|
+
dirname : "#{DIRNAME}"
|
28
|
+
filename : "#{LOGNAME}" # notice the file extension is needed!
|
29
|
+
formatter:
|
30
|
+
date_pattern: '%H:%M:%S'
|
31
|
+
pattern : '%d %l: %m '
|
32
|
+
type : PatternFormatter
|
data/lib/hyla.rb
CHANGED
@@ -22,7 +22,6 @@ require 'guard'
|
|
22
22
|
require 'safe_yaml'
|
23
23
|
require 'asciidoctor'
|
24
24
|
require 'asciidoctor/backends/html5'
|
25
|
-
# require 'asciidoctor/backends/_stylesheets'
|
26
25
|
|
27
26
|
# Added to fix issue with Ruby 2.0 on Windows machine
|
28
27
|
require 'em/pure_ruby'
|
@@ -45,12 +44,33 @@ require 'hyla/command'
|
|
45
44
|
require 'hyla/configuration'
|
46
45
|
require 'hyla/websocket'
|
47
46
|
require 'hyla/logger'
|
47
|
+
require 'hyla/logger2'
|
48
48
|
|
49
49
|
# extensions
|
50
50
|
require_all 'hyla/commands'
|
51
51
|
|
52
52
|
module Hyla
|
53
|
+
|
53
54
|
def self.logger
|
54
55
|
@logger ||= Logger.new
|
55
56
|
end
|
57
|
+
|
58
|
+
def self.logger2
|
59
|
+
log_cfg ||= $options[:log]
|
60
|
+
|
61
|
+
hyla_cfg = safe_load_file($options[:config]) if $options[:config]
|
62
|
+
|
63
|
+
mode ||= hyla_cfg['mode']
|
64
|
+
dirname ||= hyla_cfg['dirname']
|
65
|
+
logname ||= hyla_cfg['logname']
|
66
|
+
level ||= hyla_cfg['level']
|
67
|
+
tracer ||= hyla_cfg['tracer']
|
68
|
+
|
69
|
+
$logger2 ||= Logger2.new(mode, log_cfg, dirname, logname, level, tracer)
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.safe_load_file(filename)
|
73
|
+
f = File.expand_path(filename, $cmd_directory)
|
74
|
+
YAML.safe_load_file(f)
|
75
|
+
end
|
56
76
|
end
|
data/lib/hyla/Logger2.rb
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
require 'log4r'
|
2
|
+
require 'log4r/yamlconfigurator'
|
3
|
+
require 'log4r/outputter/datefileoutputter'
|
4
|
+
require 'hyla/configuration'
|
5
|
+
include Log4r
|
6
|
+
|
7
|
+
module Hyla
|
8
|
+
class Logger2
|
9
|
+
|
10
|
+
attr_reader :log, :levels
|
11
|
+
|
12
|
+
def initialize(name, log_yml_file, dirname = nil, logname = nil, level = nil, tracer = nil)
|
13
|
+
|
14
|
+
#
|
15
|
+
# Change logging level within the YAML config file
|
16
|
+
# ! Log4r::YamlConfigurator does not allow to change key/val for the level but only for formatter/outputter
|
17
|
+
#
|
18
|
+
if level.nil?
|
19
|
+
new_level = 'INFO'
|
20
|
+
else
|
21
|
+
new_level = level
|
22
|
+
end
|
23
|
+
|
24
|
+
if tracer.nil?
|
25
|
+
new_tracer = 'false'
|
26
|
+
else
|
27
|
+
new_tracer = tracer
|
28
|
+
end
|
29
|
+
|
30
|
+
log4r_hash = load_file(log_yml_file)
|
31
|
+
|
32
|
+
#
|
33
|
+
# TODO - improve it to avoid to hard code path
|
34
|
+
#
|
35
|
+
log4r_hash['log4r_config']['loggers'].each_with_index do |x, index|
|
36
|
+
log4r_hash['log4r_config']['loggers'][index]['level'] = new_level
|
37
|
+
log4r_hash['log4r_config']['loggers'][index]['tracer'] = new_tracer
|
38
|
+
end
|
39
|
+
|
40
|
+
cfg = Log4r::YamlConfigurator
|
41
|
+
|
42
|
+
if dirname.nil?
|
43
|
+
dir = [Dir.home, 'log'] * '/'
|
44
|
+
Dir.mkdir(dir) unless Dir.exist?(dir)
|
45
|
+
cfg['DIRNAME'] = dir
|
46
|
+
else
|
47
|
+
cfg['DIRNAME'] = dirname
|
48
|
+
end
|
49
|
+
|
50
|
+
if logname.nil?
|
51
|
+
cfg['LOGNAME'] = 'hyla.log'
|
52
|
+
else
|
53
|
+
cfg['LOGNAME'] = logname
|
54
|
+
end
|
55
|
+
|
56
|
+
cfg.decode_yaml log4r_hash['log4r_config']
|
57
|
+
|
58
|
+
@log = Log4r::Logger[name]
|
59
|
+
end
|
60
|
+
|
61
|
+
def levels
|
62
|
+
# ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF
|
63
|
+
levels = {"ALL" => 0, "DEBUG" => 1, "INFO" => 2, "WARN" => 3, "ERROR" => 4, "FATAL" => 5, "OFF" => 6}
|
64
|
+
end
|
65
|
+
|
66
|
+
def iterate(h, level)
|
67
|
+
h.each do |k,v|
|
68
|
+
value = v || k
|
69
|
+
if value.is_a?(Hash) || value.is_a?(Array)
|
70
|
+
puts "evaluating: #{value} recursively..."
|
71
|
+
iterate(value, level)
|
72
|
+
else
|
73
|
+
if k == "level"
|
74
|
+
v = level
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def nested_hash_value(obj,key)
|
81
|
+
if obj.respond_to?(:key?) && obj.key?(key)
|
82
|
+
obj[key]
|
83
|
+
elsif obj.respond_to?(:each)
|
84
|
+
r = nil
|
85
|
+
obj.find{ |*a| r=nested_hash_value(a.last,key) }
|
86
|
+
r
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def load_file(cfg_file)
|
91
|
+
SafeYAML::OPTIONS[:default_mode] = :safe
|
92
|
+
|
93
|
+
if cfg_file.nil?
|
94
|
+
f = [Configuration.configs,'log4r.yaml' ] * '/'
|
95
|
+
else
|
96
|
+
f = cfg_file
|
97
|
+
end
|
98
|
+
|
99
|
+
#
|
100
|
+
# Find/Replace the logging level
|
101
|
+
#
|
102
|
+
#content = File.read(f)
|
103
|
+
#new_contents = content.gsub(/LOGGING_LEVEL/, level)
|
104
|
+
|
105
|
+
# To merely print the contents of the file, use:
|
106
|
+
# puts new_contents
|
107
|
+
|
108
|
+
# To write changes to the file, use:
|
109
|
+
#File.open(f, "w") {|file| file.puts new_contents }
|
110
|
+
|
111
|
+
YAML.load_file(f)
|
112
|
+
end
|
113
|
+
|
114
|
+
def debug(msg)
|
115
|
+
@log.debug msg
|
116
|
+
end
|
117
|
+
|
118
|
+
def info(msg)
|
119
|
+
@log.info msg
|
120
|
+
end
|
121
|
+
|
122
|
+
def warn(msg)
|
123
|
+
@log.warn msg
|
124
|
+
end
|
125
|
+
|
126
|
+
def error(msg)
|
127
|
+
@log.error msg
|
128
|
+
end
|
129
|
+
|
130
|
+
def fatal(msg)
|
131
|
+
@log.fatal msg
|
132
|
+
end
|
133
|
+
|
134
|
+
#
|
135
|
+
# topic - the topic of the message, e.g. "Configuration file", "Deprecation", etc.
|
136
|
+
# message - the message detail
|
137
|
+
#
|
138
|
+
# Returns the formatted message
|
139
|
+
def message(topic, message)
|
140
|
+
formatted_topic(topic) + message.to_s.gsub(/\s+/, ' ')
|
141
|
+
end
|
142
|
+
|
143
|
+
#
|
144
|
+
# topic - the topic of the message, e.g. "Configuration file", "Deprecation", etc.
|
145
|
+
#
|
146
|
+
# Returns the formatted topic statement
|
147
|
+
def formatted_topic(topic)
|
148
|
+
"#{topic} ".rjust(20)
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
data/lib/hyla/command.rb
CHANGED
@@ -3,7 +3,7 @@ module Hyla
|
|
3
3
|
program :int_block do
|
4
4
|
# kill threads etc
|
5
5
|
# make sure to exit or abort, otherwise your program keeps running
|
6
|
-
Hyla::
|
6
|
+
Hyla::logger2.warn "CTRL-C / Shutdown command received"
|
7
7
|
exit 1
|
8
8
|
end
|
9
9
|
|
@@ -12,7 +12,7 @@ module Hyla
|
|
12
12
|
#
|
13
13
|
def self.check_mandatory_option?(key, value)
|
14
14
|
if value.nil? or value.empty?
|
15
|
-
Hyla.
|
15
|
+
Hyla.logger2.warn "Mandatory option missing: #{key}"
|
16
16
|
exit(1)
|
17
17
|
else
|
18
18
|
true
|
data/lib/hyla/commands/add.rb
CHANGED
@@ -23,7 +23,7 @@ module Hyla
|
|
23
23
|
|
24
24
|
FileUtils.cp(source, destination)
|
25
25
|
|
26
|
-
Hyla::
|
26
|
+
Hyla::logger2.info ">> Artefact #{artefact_file_name} added to project #{destination}"
|
27
27
|
|
28
28
|
case artefact_type
|
29
29
|
when 'image','audio','video','source'
|
@@ -43,7 +43,7 @@ module Hyla
|
|
43
43
|
FileUtils.mkdir_p(destination) unless File.exists?(destination)
|
44
44
|
FileUtils.cp_r source, destination
|
45
45
|
|
46
|
-
Hyla::
|
46
|
+
Hyla::logger2.info ">> Fonts #{type} added to project #{destination}"
|
47
47
|
end
|
48
48
|
|
49
49
|
end # class Create
|
data/lib/hyla/commands/build.rb
CHANGED
@@ -13,9 +13,9 @@ module Hyla
|
|
13
13
|
def build(training, options)
|
14
14
|
source = options['source']
|
15
15
|
destination = options['destination']
|
16
|
-
Hyla.
|
17
|
-
Hyla.
|
18
|
-
print Hyla.
|
16
|
+
Hyla.logger2.info "Source: ", source
|
17
|
+
Hyla.logger2.info "Destination: ", destination
|
18
|
+
print Hyla.logger2.formatted_topic "Generating..."
|
19
19
|
self.process_training(training)
|
20
20
|
puts "done."
|
21
21
|
end
|
@@ -29,9 +29,9 @@ module Hyla
|
|
29
29
|
training.process
|
30
30
|
rescue Hyla::FatalException => e
|
31
31
|
puts
|
32
|
-
Hyla.
|
33
|
-
Hyla.
|
34
|
-
Hyla.
|
32
|
+
Hyla.logger2.error "ERROR:", "YOUR TRAINING COULD NOT BE BUILT:"
|
33
|
+
Hyla.logger2.error "", "------------------------------------"
|
34
|
+
Hyla.logger2.error "", e.message
|
35
35
|
exit(1)
|
36
36
|
end
|
37
37
|
|
@@ -11,7 +11,7 @@ module Hyla
|
|
11
11
|
|
12
12
|
when 'toc2adoc'
|
13
13
|
|
14
|
-
Hyla.
|
14
|
+
Hyla.logger2.info "Rendering : Table of Content to Asciidoc"
|
15
15
|
self.check_mandatory_option?('-t / --toc', options[:toc])
|
16
16
|
self.check_mandatory_option?('-d / --destination', options[:destination])
|
17
17
|
|
@@ -25,7 +25,7 @@ module Hyla
|
|
25
25
|
|
26
26
|
when 'adoc2html'
|
27
27
|
|
28
|
-
Hyla.
|
28
|
+
Hyla.logger2.info "Rendering : Asciidoc to HTML"
|
29
29
|
self.check_mandatory_option?('-s / --source', options[:source])
|
30
30
|
self.check_mandatory_option?('-d / --destination', options[:destination])
|
31
31
|
|
@@ -48,7 +48,7 @@ module Hyla
|
|
48
48
|
self.asciidoc_to_html(@source, @destination, extensions, excludes, merged_options)
|
49
49
|
|
50
50
|
when 'index2html'
|
51
|
-
Hyla.
|
51
|
+
Hyla.logger2.info "Rendering : Asciidoctor Indexed Files to HTML"
|
52
52
|
self.check_mandatory_option?('-s / --source', options[:source])
|
53
53
|
self.check_mandatory_option?('-d / --destination', options[:destination])
|
54
54
|
|
@@ -74,7 +74,7 @@ module Hyla
|
|
74
74
|
|
75
75
|
when 'html2pdf'
|
76
76
|
|
77
|
-
Hyla.
|
77
|
+
Hyla.logger2.info "Rendering : Generate PDF from HTML file"
|
78
78
|
|
79
79
|
source_dir = options[:source] if self.check_mandatory_option?('-s / --source', options[:source])
|
80
80
|
out_dir = options[:destination] if self.check_mandatory_option?('-d / --destination', options[:destination])
|
@@ -88,7 +88,7 @@ module Hyla
|
|
88
88
|
|
89
89
|
when 'cover2png'
|
90
90
|
|
91
|
-
Hyla.
|
91
|
+
Hyla.logger2.info "Rendering : Generate Cover HTML page & picture - format png"
|
92
92
|
|
93
93
|
out_dir = options[:destination] if self.check_mandatory_option?('-d / --destination', options[:destination])
|
94
94
|
file_name = options[:cover_file]
|
@@ -101,7 +101,7 @@ module Hyla
|
|
101
101
|
self.cover_img(out_dir, file_name, image_name, course_name, module_name, bg_image_path, tool)
|
102
102
|
|
103
103
|
else
|
104
|
-
Hyla.
|
104
|
+
Hyla.logger2.error ">> Unknow rendering"
|
105
105
|
exit(1)
|
106
106
|
end
|
107
107
|
end
|
@@ -129,7 +129,7 @@ module Hyla
|
|
129
129
|
# Cover Function
|
130
130
|
# Create a png file using the HTML generated with the Slim cover template
|
131
131
|
#
|
132
|
-
def self.cover_img(out_dir, file_name, image_name, course_name, module_name, bg_image_path, tool)
|
132
|
+
def self.cover_img(out_dir, file_name, image_name, course_name, module_name, bg_image_path, tool = imgkit)
|
133
133
|
|
134
134
|
unless Dir.exist? out_dir
|
135
135
|
FileUtils.mkdir_p out_dir
|
@@ -147,8 +147,8 @@ module Hyla
|
|
147
147
|
# Replace underscore with space, next digits & space with nothing & Capitalize
|
148
148
|
module_name = module_name.gsub('_', ' ').gsub(/^\d{1,2}\s/, '').capitalize
|
149
149
|
|
150
|
-
Hyla.
|
151
|
-
Hyla.
|
150
|
+
Hyla.logger2.debug "Module name : " + module_name
|
151
|
+
Hyla.logger2.info "Curent directory : #{Dir.pwd}"
|
152
152
|
|
153
153
|
# Use slim template & render the HTML
|
154
154
|
parameters = {:course_name => course_name,
|
@@ -185,19 +185,19 @@ module Hyla
|
|
185
185
|
source = File.expand_path source
|
186
186
|
@destination = File.expand_path destination
|
187
187
|
|
188
|
-
Hyla.
|
189
|
-
Hyla.
|
188
|
+
Hyla.logger2.info ">> Source dir: #{source}"
|
189
|
+
Hyla.logger2.info ">> Destination dir: #{@destination}"
|
190
190
|
|
191
191
|
# Exit if source directory does not exist
|
192
192
|
if !Dir.exist? source
|
193
|
-
Hyla.
|
193
|
+
Hyla.logger2.error ">> Source directory does not exist"
|
194
194
|
exit(1)
|
195
195
|
end
|
196
196
|
|
197
197
|
# Move to source directory
|
198
198
|
Dir.chdir(source)
|
199
199
|
current_dir = Dir.pwd
|
200
|
-
Hyla.
|
200
|
+
Hyla.logger2.info ">> Current dir: #{current_dir}"
|
201
201
|
|
202
202
|
#
|
203
203
|
# Backup Asciidoctor attributes
|
@@ -231,7 +231,7 @@ module Hyla
|
|
231
231
|
path_to_source = Pathname.new(source)
|
232
232
|
path_to_adoc_file = Pathname.new(f)
|
233
233
|
relative_path = path_to_adoc_file.relative_path_from(path_to_source).to_s
|
234
|
-
Hyla.
|
234
|
+
Hyla.logger2.debug ">> Relative path: #{relative_path}"
|
235
235
|
adoc_file_paths << relative_path
|
236
236
|
|
237
237
|
# Get asciidoctor file name
|
@@ -241,7 +241,7 @@ module Hyla
|
|
241
241
|
# Create destination dir relative to the path calculated
|
242
242
|
#
|
243
243
|
html_dir = [@destination, File.dirname(relative_path)] * '/'
|
244
|
-
Hyla.
|
244
|
+
Hyla.logger2.debug ">> Dir of html: #{html_dir}"
|
245
245
|
FileUtils.mkdir_p html_dir
|
246
246
|
|
247
247
|
# Copy Fonts
|
@@ -263,7 +263,7 @@ module Hyla
|
|
263
263
|
#
|
264
264
|
# Render asciidoc to HTML
|
265
265
|
#
|
266
|
-
Hyla.
|
266
|
+
Hyla.logger2.info ">> File to be rendered : #{file_name_processed}"
|
267
267
|
|
268
268
|
#
|
269
269
|
# Convert asciidoc file name to html file name
|
@@ -289,7 +289,7 @@ module Hyla
|
|
289
289
|
|
290
290
|
# No asciidoc files retrieved
|
291
291
|
if adoc_file_paths.empty?
|
292
|
-
Hyla.
|
292
|
+
Hyla.logger2.info " >> No asciidoc files retrieved."
|
293
293
|
exit(1)
|
294
294
|
end
|
295
295
|
|
@@ -314,7 +314,7 @@ module Hyla
|
|
314
314
|
source = [Configuration::assets, resource] * '/'
|
315
315
|
# destination = [path, resource] * '/'
|
316
316
|
destination = path
|
317
|
-
Hyla.
|
317
|
+
Hyla.logger2.debug ">> Copy resource from Source dir: #{source} --> destination dir: #{destination}"
|
318
318
|
FileUtils.cp_r source, destination, :verbose => false
|
319
319
|
end
|
320
320
|
|
@@ -329,7 +329,7 @@ module Hyla
|
|
329
329
|
#
|
330
330
|
def self.table_of_content_to_asciidoc(toc_file, out_dir, project_name, image_path)
|
331
331
|
|
332
|
-
Hyla.
|
332
|
+
Hyla.logger2.info '>> Project Name : ' + project_name + ' <<'
|
333
333
|
|
334
334
|
# Open file & parse it
|
335
335
|
f = f = File.open(toc_file, 'r')
|
@@ -337,7 +337,7 @@ module Hyla
|
|
337
337
|
|
338
338
|
# Expand File Path
|
339
339
|
@out_dir = File.expand_path out_dir
|
340
|
-
Hyla.
|
340
|
+
Hyla.logger2.info '>> Output directory : ' + out_dir + ' <<'
|
341
341
|
|
342
342
|
#
|
343
343
|
# Create destination directory if it does not exist
|
@@ -347,7 +347,7 @@ module Hyla
|
|
347
347
|
end
|
348
348
|
|
349
349
|
# Copy YAML Config file
|
350
|
-
FileUtils.cp_r [Configuration::
|
350
|
+
FileUtils.cp_r [Configuration::configs, Configuration::YAML_CONFIG_FILE_NAME] * '/', @out_dir
|
351
351
|
|
352
352
|
# Copy styles
|
353
353
|
# FileUtils.cp_r Configuration::styles, @out_dir
|
@@ -397,7 +397,7 @@ module Hyla
|
|
397
397
|
new_dir = [@out_dir, dir_name].join('/')
|
398
398
|
FileUtils.rm_rf new_dir
|
399
399
|
FileUtils.mkdir new_dir
|
400
|
-
Hyla.
|
400
|
+
Hyla.logger2.info '>> Directory created : ' + new_dir + ' <<'
|
401
401
|
|
402
402
|
Dir.chdir(new_dir)
|
403
403
|
|
@@ -428,7 +428,7 @@ module Hyla
|
|
428
428
|
#
|
429
429
|
dir_name = File.basename(Dir.getwd)
|
430
430
|
@module_key = dir_name.initial.rjust(2, '0')
|
431
|
-
Hyla.
|
431
|
+
Hyla.logger2.info ">> Module key : #@module_key <<"
|
432
432
|
|
433
433
|
#
|
434
434
|
# Reset counter value used to generate file number
|
@@ -442,9 +442,9 @@ module Hyla
|
|
442
442
|
@index += 1
|
443
443
|
file_index = sprintf('%02d', @index)
|
444
444
|
f_name = 'm' + @module_key + 'p' + file_index + '_cover' + Configuration::ADOC_EXT
|
445
|
-
Hyla.
|
445
|
+
Hyla.logger2.debug '>> Directory name : ' + dir_name.to_s.gsub('_', ' ')
|
446
446
|
rep_txt = Configuration::COVER_TXT.gsub(/xxx\.png/, dir_name + '.png')
|
447
|
-
Hyla.
|
447
|
+
Hyla.logger2.debug "Replaced by : " + rep_txt
|
448
448
|
cover_f = File.new(f_name, 'w')
|
449
449
|
cover_f.puts rep_txt
|
450
450
|
cover_f.close
|
@@ -458,13 +458,13 @@ module Hyla
|
|
458
458
|
course_name = @project_name
|
459
459
|
module_name= dir_name
|
460
460
|
bg_image_path = image_path
|
461
|
-
Hyla.
|
462
|
-
Hyla.
|
463
|
-
Hyla.
|
464
|
-
Hyla.
|
465
|
-
Hyla.
|
461
|
+
Hyla.logger2.debug '>> Out Directory : ' + out_dir.to_s
|
462
|
+
Hyla.logger2.debug '>> Image name : ' + image_name.to_s
|
463
|
+
Hyla.logger2.debug '>> Course Name : ' + course_name.to_s
|
464
|
+
Hyla.logger2.debug '>> Module Name : ' + module_name.to_s
|
465
|
+
Hyla.logger2.debug '>> Bg Image : ' + bg_image_path.to_s
|
466
466
|
|
467
|
-
self.cover_img(out_dir, file_name, image_name, course_name, module_name, bg_image_path)
|
467
|
+
self.cover_img(out_dir, file_name, image_name, course_name, module_name, bg_image_path, tool = nil)
|
468
468
|
|
469
469
|
#
|
470
470
|
# Include cover file to index
|
@@ -559,7 +559,7 @@ module Hyla
|
|
559
559
|
@new_f.puts Configuration::HEADER_TXT
|
560
560
|
@new_f.puts "\n"
|
561
561
|
|
562
|
-
Hyla.
|
562
|
+
Hyla.logger2.info ' # File created : ' + f_asciidoc_name.to_s
|
563
563
|
|
564
564
|
@previous_f = @new_f
|
565
565
|
|
@@ -620,7 +620,7 @@ module Hyla
|
|
620
620
|
# Save PDF to a file
|
621
621
|
pdf_file_name = [destination, html_file_name.sub(/html|htm/, 'pdf')] * '/'
|
622
622
|
kit.to_file(pdf_file_name)
|
623
|
-
Hyla.
|
623
|
+
Hyla.logger2.info ">> PDF file generated and saved : #{pdf_file_name} "
|
624
624
|
end
|
625
625
|
=end
|
626
626
|
|
@@ -698,7 +698,7 @@ module Hyla
|
|
698
698
|
wkhtml_cmd.concat " --margin-bottom '10mm' --footer-center '#{footer_text}'" if footer_text
|
699
699
|
wkhtml_cmd.concat " --cover '#@cover_path'" if @cover_path
|
700
700
|
wkhtml_cmd.concat " --page-size #{size}"
|
701
|
-
Hyla.
|
701
|
+
Hyla.logger2.debug "c #{wkhtml_cmd}"
|
702
702
|
|
703
703
|
Dir.chdir(source) do
|
704
704
|
system "#{wkhtml_cmd}"
|
@@ -733,7 +733,7 @@ module Hyla
|
|
733
733
|
#
|
734
734
|
def self.check_slash_end(out_dir)
|
735
735
|
last_char = out_dir.to_s[-1, 1]
|
736
|
-
Hyla.
|
736
|
+
Hyla.logger2.info '>> Last char : ' + last_char
|
737
737
|
if !last_char.equal? '/\//'
|
738
738
|
temp_dir = out_dir.to_s
|
739
739
|
out_dir = temp_dir + '/'
|
@@ -834,7 +834,7 @@ module Hyla
|
|
834
834
|
#
|
835
835
|
def self.check_mandatory_option?(key, value)
|
836
836
|
if value.nil? or value.empty?
|
837
|
-
Hyla.
|
837
|
+
Hyla.logger2.warn "Mandatory option missing: #{key}"
|
838
838
|
exit(1)
|
839
839
|
else
|
840
840
|
true
|
data/lib/hyla/commands/new.rb
CHANGED
@@ -28,22 +28,22 @@ EOS
|
|
28
28
|
|
29
29
|
if Dir.exist? new_project_path
|
30
30
|
|
31
|
-
Hyla.
|
31
|
+
Hyla.logger2.debug("Dir exists: #{new_project_path}")
|
32
32
|
|
33
33
|
# If force is selected, then we delete & recreate it to clean content
|
34
34
|
if options[:force]
|
35
|
-
Hyla.
|
35
|
+
Hyla.logger2.debug("Force option selected")
|
36
36
|
# DOES NOT WORK ON Mac OS X
|
37
37
|
# FileUtils.rmdir(new_project_path)
|
38
38
|
FileUtils.rm_rf new_project_path
|
39
39
|
# Create Directory
|
40
40
|
FileUtils.mkdir_p new_project_path
|
41
|
-
Hyla.
|
41
|
+
Hyla.logger2.debug("Dir recreated")
|
42
42
|
end
|
43
43
|
|
44
44
|
# Preserve content if it exists
|
45
45
|
if preserve_content?(new_project_path)
|
46
|
-
Hyla.
|
46
|
+
Hyla.logger2.error "Conflict: #{new_project_path} exists and is not empty."
|
47
47
|
exit(1)
|
48
48
|
end
|
49
49
|
|
@@ -55,17 +55,17 @@ EOS
|
|
55
55
|
#
|
56
56
|
# Create blank project
|
57
57
|
# or copy sample project from template directory
|
58
|
-
#
|
58
|
+
#igs
|
59
59
|
if options[:blank]
|
60
60
|
create_blank_project new_project_path
|
61
61
|
|
62
62
|
# Add yaml config file
|
63
|
-
FileUtils.cp_r [Configuration::
|
63
|
+
FileUtils.cp_r [Configuration::configs, Configuration::YAML_CONFIG_FILE_NAME] * '/', new_project_path
|
64
64
|
|
65
65
|
# Copy styles
|
66
66
|
FileUtils.cp_r Configuration::styles, new_project_path
|
67
67
|
|
68
|
-
Hyla.
|
68
|
+
Hyla.logger2.info("Blank project created")
|
69
69
|
|
70
70
|
else
|
71
71
|
raise ArgumentError.new('You must specifiy a template type.') if options[:template_type].nil?
|
@@ -75,7 +75,7 @@ EOS
|
|
75
75
|
# Copy styles
|
76
76
|
FileUtils.cp_r Configuration::styles, new_project_path
|
77
77
|
|
78
|
-
Hyla.
|
78
|
+
Hyla.logger2.info("Sample project created using template : #{options[:template_type]}")
|
79
79
|
end
|
80
80
|
|
81
81
|
end
|
@@ -100,7 +100,7 @@ EOS
|
|
100
100
|
FileUtils.cp_r source, path
|
101
101
|
|
102
102
|
# Add yaml config file
|
103
|
-
FileUtils.cp_r [Configuration::
|
103
|
+
FileUtils.cp_r [Configuration::configs, Configuration::YAML_CONFIG_FILE_NAME] * '/', path
|
104
104
|
end
|
105
105
|
|
106
106
|
#
|
data/lib/hyla/commands/reload.rb
CHANGED
@@ -24,21 +24,21 @@ module Hyla
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def reload_browser(paths = [])
|
27
|
-
Hyla.
|
27
|
+
Hyla.logger2.info "Reloading browser: #{paths.join(' ')}"
|
28
28
|
paths.each do |path|
|
29
|
-
Hyla.
|
29
|
+
Hyla.logger2.info(path)
|
30
30
|
data = _data(path)
|
31
|
-
Hyla.
|
31
|
+
Hyla.logger2.info(">> Data received : #{data}")
|
32
32
|
@@web_sockets.each { |ws| ws.send(MultiJson.encode(data)) }
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
def reload_browser2(paths = [])
|
37
|
-
Hyla.
|
37
|
+
Hyla.logger2.info "Reloading browser: #{paths.join(' ')}"
|
38
38
|
paths.each do |path|
|
39
|
-
Hyla.
|
39
|
+
Hyla.logger2.info(path)
|
40
40
|
data = 'hyla/development/'
|
41
|
-
Hyla.
|
41
|
+
Hyla.logger2.info(">> Data received : #{data}")
|
42
42
|
@@web_sockets.each { |ws| ws.send(MultiJson.encode(data)) }
|
43
43
|
end
|
44
44
|
end
|
@@ -70,7 +70,7 @@ module Hyla
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def _start_reactor
|
73
|
-
Hyla.
|
73
|
+
Hyla.logger2.info "LiveReload is waiting for a browser to connect."
|
74
74
|
EventMachine.epoll
|
75
75
|
EventMachine.run do
|
76
76
|
EventMachine.start_server(@options[:host], @options[:port], @Websocket, {}) do |ws|
|
@@ -82,7 +82,7 @@ module Hyla
|
|
82
82
|
end
|
83
83
|
|
84
84
|
def _connect(ws)
|
85
|
-
Hyla.
|
85
|
+
Hyla.logger2.info "Browser connected."
|
86
86
|
ws.send MultiJson.encode(
|
87
87
|
command: 'hello',
|
88
88
|
protocols: ['http://livereload.com/protocols/official-7'],
|
@@ -90,18 +90,18 @@ module Hyla
|
|
90
90
|
)
|
91
91
|
@@web_sockets << ws
|
92
92
|
rescue
|
93
|
-
Hyla.
|
94
|
-
Hyla.
|
93
|
+
Hyla.logger2.error $!
|
94
|
+
Hyla.logger2.error $!.backtrace
|
95
95
|
end
|
96
96
|
|
97
97
|
def _disconnect(ws)
|
98
|
-
Hyla.
|
98
|
+
Hyla.logger2.info "Browser disconnected."
|
99
99
|
@@web_sockets.delete(ws)
|
100
100
|
end
|
101
101
|
|
102
102
|
def _print_message(message)
|
103
103
|
message = MultiJson.decode(message)
|
104
|
-
Hyla.
|
104
|
+
Hyla.logger2.info "Browser URL: #{message['url']}" if message['command'] == 'url'
|
105
105
|
end
|
106
106
|
|
107
107
|
end # class
|
@@ -74,7 +74,7 @@ module Hyla
|
|
74
74
|
|
75
75
|
mail.delivery_method :smtp, parameters()
|
76
76
|
mail.deliver!
|
77
|
-
Hyla.
|
77
|
+
Hyla.logger2.info "Email send to SMTP server from #{sender} with this subject : #{subject}"
|
78
78
|
end
|
79
79
|
|
80
80
|
#
|
data/lib/hyla/commands/serve.rb
CHANGED
@@ -29,12 +29,12 @@ module Hyla
|
|
29
29
|
|
30
30
|
s.mount(my_opts[:baseurl],HTTPServlet::FileHandler, destination, fh_option)
|
31
31
|
|
32
|
-
Hyla.
|
32
|
+
Hyla.logger2.info "Server address:", "http://#{s.config[:BindAddress]}:#{s.config[:Port]}"
|
33
33
|
|
34
34
|
if options[:detach] # detach the server
|
35
35
|
pid = Process.fork { s.start }
|
36
36
|
Process.detach(pid)
|
37
|
-
Hyla.
|
37
|
+
Hyla.logger2.info "Server detached with pid '#{pid}'.", "Run `kill -9 #{pid}' to stop the server."
|
38
38
|
else # create a new server thread, then join it with current terminal
|
39
39
|
t = Thread.new { s.start }
|
40
40
|
trap("INT") { s.shutdown }
|
@@ -45,7 +45,7 @@ module Hyla
|
|
45
45
|
|
46
46
|
def self.start_callback(detached)
|
47
47
|
unless detached
|
48
|
-
Proc.new { Hyla.
|
48
|
+
Proc.new { Hyla.logger2.info "Server running...", "press ctrl-c to stop." }
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
data/lib/hyla/commands/watch.rb
CHANGED
@@ -35,34 +35,34 @@ module Hyla
|
|
35
35
|
# Detect files modified, deleted or added
|
36
36
|
#
|
37
37
|
callback = Proc.new do |modified, added, removed|
|
38
|
-
Hyla.
|
39
|
-
Hyla.
|
40
|
-
Hyla.
|
38
|
+
Hyla.logger2.info "modified absolute path: #{modified}"
|
39
|
+
Hyla.logger2.info "added absolute path: #{added}"
|
40
|
+
Hyla.logger2.info "removed absolute path: #{removed}"
|
41
41
|
|
42
42
|
if !modified.nil? or !added.nil?
|
43
43
|
modified.each do |modify|
|
44
|
-
Hyla.
|
44
|
+
Hyla.logger2.info "File modified : #{modify}"
|
45
45
|
call_asciidoctor(modify)
|
46
46
|
end
|
47
47
|
|
48
48
|
added.each do |add|
|
49
|
-
Hyla.
|
49
|
+
Hyla.logger2.info "File added : #{add}"
|
50
50
|
call_asciidoctor(add)
|
51
51
|
end
|
52
52
|
|
53
53
|
end
|
54
54
|
end # callback
|
55
55
|
|
56
|
-
Hyla.
|
57
|
-
Hyla.
|
58
|
-
Hyla.
|
56
|
+
Hyla.logger2.info ">> ... Starting\n"
|
57
|
+
Hyla.logger2.info ">> Hyla has started to watch files in this dir : #{@opts[:watch_dir]}"
|
58
|
+
Hyla.logger2.info ">> Results of rendering will be available here : #{@opts[:to_dir]}"
|
59
59
|
|
60
60
|
# TODO : Investigate issue with Thread pool is not running (Celluloid::Error)
|
61
61
|
# when using a more recent version of guard listen
|
62
62
|
listener = Listen.to!(@opts[:watch_dir], &callback)
|
63
63
|
|
64
64
|
trap(:INT) {
|
65
|
-
Hyla.
|
65
|
+
Hyla.logger2.info "Interrupt intercepted"
|
66
66
|
Thread.kill(@t)
|
67
67
|
}
|
68
68
|
end
|
@@ -76,9 +76,9 @@ module Hyla
|
|
76
76
|
|
77
77
|
if [".adoc",".ad",".asciidoc",".txt",".index"].include? @ext_name
|
78
78
|
|
79
|
-
Hyla.
|
80
|
-
Hyla.
|
81
|
-
Hyla.
|
79
|
+
Hyla.logger2.info ">> Directory containing file(s) to be processed : #{dir_file}"
|
80
|
+
Hyla.logger2.info ">> File to be processed : #{file_to_process}"
|
81
|
+
Hyla.logger2.info ">> Extension of the file : #{@ext_name}"
|
82
82
|
|
83
83
|
# Generate File name
|
84
84
|
# Rename xxx.adoc, xxx.asciidoc, xxx.ad, xxx.index to xxx.html
|
@@ -100,8 +100,8 @@ module Hyla
|
|
100
100
|
|
101
101
|
@opts[:to_dir] = calc_dir
|
102
102
|
|
103
|
-
Hyla.
|
104
|
-
Hyla.
|
103
|
+
Hyla.logger2.info ">> Directory of the file to be generated : #{calc_dir}"
|
104
|
+
Hyla.logger2.debug ">> Asciidoctor options : #{@opts}"
|
105
105
|
|
106
106
|
# Render Asciidoc document
|
107
107
|
Asciidoctor.render_file(f, @opts)
|
@@ -115,7 +115,7 @@ module Hyla
|
|
115
115
|
|
116
116
|
def self.substract_watch_dir(file_dir, watched_dir)
|
117
117
|
s = file_dir.sub(watched_dir, '')
|
118
|
-
Hyla.
|
118
|
+
Hyla.logger2.info ">> Relative directory : #{s}"
|
119
119
|
s
|
120
120
|
end
|
121
121
|
|
data/lib/hyla/configuration.rb
CHANGED
@@ -3,7 +3,7 @@ module Hyla
|
|
3
3
|
|
4
4
|
attr_reader :HEADER, :INDEX_SUFFIX, :HEADER_INDEX, :INCLUDE_PREFIX, :INCLUDE_SUFFIX, :LEVEL_1, :LEVEL_2, :SKIP_CHARACTERS,
|
5
5
|
:ADOC_EXT, :PREFIX_ARTEFACT, :YAML_CONFIG_FILE_NAME, :DEFAULTS,
|
6
|
-
:templates, :cover_template, :samples, :resources, :styles, :fonts, :backends, :assets
|
6
|
+
:templates, :configs, :cover_template, :samples, :resources, :styles, :fonts, :backends, :assets
|
7
7
|
|
8
8
|
DEFAULTS = {
|
9
9
|
'source' => Dir.pwd,
|
@@ -49,18 +49,6 @@ module Hyla
|
|
49
49
|
|
50
50
|
SNIPPET_TAG = 'snippet'
|
51
51
|
|
52
|
-
|
53
|
-
# OLD HEADER_TXT used with hyla < 1.0.7
|
54
|
-
# HEADER_TXT = ":data-uri:\n" +
|
55
|
-
# ":icons: font\n" +
|
56
|
-
# ":last-update-label!:\n" +
|
57
|
-
# ":source-highlighter: coderay\n"
|
58
|
-
#
|
59
|
-
# HEADER_TXT = "ifndef::local[]\n" +
|
60
|
-
# ":imagesdir: ../image/\n" +
|
61
|
-
# "endif::[]\n"
|
62
|
-
|
63
|
-
|
64
52
|
HEADER_TXT = "// Asciidoctor attributes\n"
|
65
53
|
|
66
54
|
LEVEL_1 = '= '
|
@@ -91,6 +79,13 @@ module Hyla
|
|
91
79
|
File.expand_path(COVERS, File.dirname(__FILE__))
|
92
80
|
end
|
93
81
|
|
82
|
+
#
|
83
|
+
# Config Location
|
84
|
+
#
|
85
|
+
def self.configs
|
86
|
+
File.expand_path(CONFIGS, File.dirname(__FILE__))
|
87
|
+
end
|
88
|
+
|
94
89
|
#
|
95
90
|
# Templates Location
|
96
91
|
#
|
@@ -161,11 +156,11 @@ module Hyla
|
|
161
156
|
|
162
157
|
# Stringify keys of the hash that we receive from Hyla
|
163
158
|
override = Configuration[override].stringify_keys
|
164
|
-
Hyla::
|
159
|
+
Hyla::logger2.debug("OVERRIDE Keys: #{override.inspect}")
|
165
160
|
|
166
161
|
# Clone DEFAULTS
|
167
162
|
config = DEFAULTS
|
168
|
-
Hyla::
|
163
|
+
Hyla::logger2.debug("DEFAULTS Keys: #{config.inspect}")
|
169
164
|
|
170
165
|
#
|
171
166
|
# Read the config file passed as parameter if it exists
|
@@ -177,7 +172,7 @@ module Hyla
|
|
177
172
|
config = config.deep_merge(alt_config)
|
178
173
|
else
|
179
174
|
new_config = read_config_file(YAML_CONFIG_FILE_NAME)
|
180
|
-
Hyla::
|
175
|
+
Hyla::logger2.debug("OVERRIDE Keys: #{new_config.inspect}") if !new_config.nil?
|
181
176
|
config = config.deep_merge(new_config) if !new_config.nil?
|
182
177
|
end
|
183
178
|
|
@@ -185,7 +180,7 @@ module Hyla
|
|
185
180
|
config = config.deep_merge(override)
|
186
181
|
# Convert String Keys to Symbols Keys
|
187
182
|
config = Configuration[].transform_keys_to_symbols(config)
|
188
|
-
Hyla::
|
183
|
+
Hyla::logger2.debug("Merged Keys: #{config.inspect}")
|
189
184
|
return config
|
190
185
|
end
|
191
186
|
|
@@ -194,11 +189,10 @@ module Hyla
|
|
194
189
|
#
|
195
190
|
def self.read_config_file(filename)
|
196
191
|
f = File.expand_path(filename)
|
197
|
-
Hyla::
|
198
|
-
|
199
|
-
config
|
192
|
+
Hyla::logger2.info("Config file to be parsed : #{f}")
|
193
|
+
safe_load_file(f)
|
200
194
|
rescue SystemCallError
|
201
|
-
Hyla::
|
195
|
+
Hyla::logger2.error "No configuration file retrieved for the name : #{filename}"
|
202
196
|
end
|
203
197
|
|
204
198
|
#
|
@@ -267,6 +261,8 @@ module Hyla
|
|
267
261
|
|
268
262
|
TEMPLATES = '../../lib/templates'
|
269
263
|
|
264
|
+
CONFIGS = '../../lib/configs'
|
265
|
+
|
270
266
|
RESOURCES = '../../lib/resources'
|
271
267
|
|
272
268
|
SAMPLES = '../../lib/templates/sample'
|
data/lib/hyla/logger.rb
CHANGED
data/lib/hyla/project.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Hyla
|
2
|
-
VERSION = '1.0.7.pre.
|
2
|
+
VERSION = '1.0.7.pre.8'
|
3
3
|
DESCRIPTION = 'Asciidoctor Hyla - Command Line tool to create new project, watch modifications, generate content, publish or consult it live !'
|
4
4
|
SUMMARY = 'Asciidoctor Hyla - builder/generator of HTML5, slideshow. Watch modifications, generate content, publish or consult it live !'
|
5
5
|
end
|
data/lib/hyla/websocket.rb
CHANGED
@@ -23,7 +23,7 @@ module Hyla
|
|
23
23
|
private
|
24
24
|
|
25
25
|
def _serve_file(path)
|
26
|
-
Hyla.
|
26
|
+
Hyla.logger2.info "Serving file #{path}"
|
27
27
|
send_data "HTTP/1.1 200 OK\r\nContent-Type: #{_content_type(path)}\r\nContent-Length: #{File.size path}\r\n\r\n"
|
28
28
|
stream_file_data(path).callback { close_connection_after_writing }
|
29
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.7.pre.
|
4
|
+
version: 1.0.7.pre.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Moulliard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -442,6 +442,20 @@ dependencies:
|
|
442
442
|
- - ~>
|
443
443
|
- !ruby/object:Gem::Version
|
444
444
|
version: '0.9'
|
445
|
+
- !ruby/object:Gem::Dependency
|
446
|
+
name: log4r
|
447
|
+
requirement: !ruby/object:Gem::Requirement
|
448
|
+
requirements:
|
449
|
+
- - ~>
|
450
|
+
- !ruby/object:Gem::Version
|
451
|
+
version: '1.1'
|
452
|
+
type: :runtime
|
453
|
+
prerelease: false
|
454
|
+
version_requirements: !ruby/object:Gem::Requirement
|
455
|
+
requirements:
|
456
|
+
- - ~>
|
457
|
+
- !ruby/object:Gem::Version
|
458
|
+
version: '1.1'
|
445
459
|
- !ruby/object:Gem::Dependency
|
446
460
|
name: colorator
|
447
461
|
requirement: !ruby/object:Gem::Requirement
|
@@ -506,7 +520,10 @@ files:
|
|
506
520
|
- documentation/scripts/remove_temp_directories.sh
|
507
521
|
- documentation/scripts/sendmail.sh
|
508
522
|
- hyla.gemspec
|
523
|
+
- lib/configs/_config.yaml
|
524
|
+
- lib/configs/log4r.yaml
|
509
525
|
- lib/hyla.rb
|
526
|
+
- lib/hyla/Logger2.rb
|
510
527
|
- lib/hyla/command.rb
|
511
528
|
- lib/hyla/commands/add.rb
|
512
529
|
- lib/hyla/commands/build.rb
|
@@ -1179,7 +1196,6 @@ files:
|
|
1179
1196
|
- lib/resources/backends/slim/revealjs/inline_menu.html.slim
|
1180
1197
|
- lib/resources/backends/slim/revealjs/inline_quoted.html.slim
|
1181
1198
|
- lib/resources/backends/slim/revealjs/section.html.slim
|
1182
|
-
- lib/templates/_config.yaml
|
1183
1199
|
- lib/templates/book/development/audio/ocean_waves.mp3
|
1184
1200
|
- lib/templates/book/development/book.adoc
|
1185
1201
|
- lib/templates/book/development/image/hyla_frog.jpg
|