md2site 0.1.2 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -19
- data/Gemfile +1 -1
- data/Gemfile.lock +21 -28
- data/bin/md2site +26 -31
- data/data/_x/diff.txt +337 -0
- data/data/_x/list.txt +495 -0
- data/data/_x/list2.txt +495 -0
- data/data/_x/list3.txt +415 -0
- data/data/_x/list4.txt +415 -0
- data/data/_x/list5.txt +392 -0
- data/data/_x/list6.txt +298 -0
- data/data/_x/list7.txt +201 -0
- data/data/_x/list8.txt +199 -0
- data/data/_x/outer_url.txt +94 -0
- data/data/_x/s.txt +140 -0
- data/data/conf/conf.sh +0 -2
- data/data/testdata/{conf-blog.yml → conf/conf-blog.yml} +0 -0
- data/data/testdata/{conf-download.yml → conf/conf-download.yml} +0 -0
- data/data/testdata/{conf-link.yml → conf/conf-link.yml} +0 -0
- data/data/testdata/{conf-profile.yml → conf/conf-profile.yml} +0 -0
- data/data/testdata/{conf-top.yml → conf/conf-top.yml} +0 -0
- data/data/testdata/{site.tsv → conf/site.tsv} +0 -0
- data/data/testdata0/{conf-appliction.yml → conf/conf-appliction.yml} +0 -0
- data/data/testdata0/{conf-attempt.yml → conf/conf-attempt.yml} +16 -16
- data/data/testdata0/conf/conf-autosar.yml +11 -0
- data/data/testdata0/{conf-community.yml → conf/conf-community.yml} +0 -0
- data/data/testdata0/{conf-document.yml → conf/conf-document.yml} +0 -0
- data/data/testdata0/{conf-download.yml → conf/conf-download.yml} +0 -0
- data/data/testdata0/{conf-edu.yml → conf/conf-edu.yml} +18 -19
- data/data/testdata0/{conf-etc.yml → conf/conf-etc.yml} +0 -0
- data/data/testdata0/{conf-members.yml → conf/conf-members.yml} +0 -0
- data/data/testdata0/{conf-product.yml → conf/conf-product.yml} +9 -9
- data/data/testdata0/{conf-project.yml → conf/conf-project.yml} +2 -2
- data/data/testdata0/conf/conf-rtk.yml +25 -0
- data/data/testdata0/conf/conf-sample.yml +5 -0
- data/data/testdata0/{conf-top.yml → conf/conf-top.yml} +0 -0
- data/data/testdata0/conf/conf.sh +32 -0
- data/data/testdata0/{setting.yml → conf/setting.yml} +11 -0
- data/data/testdata0/{site.tsv → conf/site.tsv} +109 -2
- data/data/testdata0/conf/status.txt +6 -0
- data/lib/md2site/env.rb +248 -276
- data/lib/md2site/envcheck.rb +186 -0
- data/lib/md2site/htmlutils0.rb +64 -2
- data/lib/md2site/info.rb +12 -0
- data/lib/md2site/init.rb +61 -5
- data/lib/md2site/listfile.rb +16 -0
- data/lib/md2site/make.rb +92 -31
- data/lib/md2site/nkfguess.rb +8 -0
- data/lib/md2site/setup.rb +104 -28
- data/lib/md2site/statusfile.rb +98 -6
- data/lib/md2site/testdata.rb +43 -3
- data/lib/md2site/testx.rb +28 -1
- data/lib/md2site/version.rb +1 -1
- data/lib/md2site.rb +93 -26
- data/md2site.gemspec +5 -6
- metadata +77 -76
- data/data/testdata0/conf-autosar.yml +0 -11
- data/data/testdata0/conf-rtk.yml +0 -25
data/lib/md2site/statusfile.rb
CHANGED
@@ -1,11 +1,30 @@
|
|
1
1
|
module Md2site
|
2
2
|
require "yaml"
|
3
3
|
|
4
|
+
#
|
5
|
+
# ダウンロードステータスファイルクラス
|
4
6
|
class StatusFile
|
5
|
-
|
7
|
+
# @return [String] ダウンロード先ホストのURL
|
8
|
+
attr_accessor :baseurl
|
9
|
+
# @return [String] ダウンロードヘッダ一覧ファイル名
|
10
|
+
attr_accessor :fname
|
11
|
+
# @return [String] ダウンロードヘッダ一覧ファイルへのパス
|
12
|
+
attr_accessor :fpath
|
13
|
+
# @return [String] ダウンロード開始日時
|
14
|
+
attr_accessor :last_datetime
|
15
|
+
# ダウンロード保存先ディレクトリへのパス
|
16
|
+
attr_accessor :last_contents_path
|
6
17
|
|
7
|
-
|
18
|
+
#
|
19
|
+
# 初期化
|
20
|
+
#
|
21
|
+
# @param path [String] ダウンロードステータスファイルへのパス
|
22
|
+
# @param baseurl [String] ダウンロード先ホストのURL
|
23
|
+
# @param mes [Messagex] Messagexクラスのインスタンス
|
24
|
+
def initialize(path, absolutepath_root, baseurl, mes)
|
8
25
|
@path = path
|
26
|
+
@absolutepath_root_pn = Pathname.new(absolutepath_root)
|
27
|
+
|
9
28
|
@baseurl = baseurl
|
10
29
|
@mes = mes
|
11
30
|
|
@@ -18,9 +37,12 @@ module Md2site
|
|
18
37
|
obj = Filex::Filex.load_yaml(content, @mes)
|
19
38
|
@baseurl = obj[:baseurl]
|
20
39
|
@fname = obj[:fname]
|
21
|
-
@fpath = obj[:
|
40
|
+
@fpath = obj[:fpath]
|
41
|
+
@absolutepath_fpath_pn = Pathname.new(get_absolute_path(@fpath))
|
22
42
|
@last_datetime = obj[:last_datetime]
|
43
|
+
|
23
44
|
@last_contents_path = obj[:last_contents_path]
|
45
|
+
@absolutepath_last_contents_path_pn = Pathname.new(get_absolute_path(@last_contents_path))
|
24
46
|
else
|
25
47
|
@baseurl = @baseurl
|
26
48
|
@fname = nil
|
@@ -30,6 +52,12 @@ module Md2site
|
|
30
52
|
end
|
31
53
|
end
|
32
54
|
|
55
|
+
#
|
56
|
+
# ダウンロードステータスファイル出力
|
57
|
+
#
|
58
|
+
# @param path [String] ダウンロードステータスファイルへのパス
|
59
|
+
# @param content [String] ダウンロードステータスファイルの内容
|
60
|
+
# @return [void]
|
33
61
|
def output(path, content)
|
34
62
|
File.open(path, "w") do |ofile|
|
35
63
|
ofile.puts(content)
|
@@ -37,8 +65,26 @@ module Md2site
|
|
37
65
|
end
|
38
66
|
end
|
39
67
|
|
68
|
+
#
|
69
|
+
# ダウンロードステータスファイル更新
|
70
|
+
#
|
71
|
+
# @return [void]
|
72
|
+
# @note YAML形式に変換できなければダウンロードステータスファイルを更新しない
|
40
73
|
def update
|
41
|
-
|
74
|
+
if @fpath
|
75
|
+
@absolutepath_fpath_pn = Pathname.new(get_absolute_path(@fpath))
|
76
|
+
@fpath = @absolutepath_fpath_pn.relative_path_from(@absolutepath_root_pn).to_s
|
77
|
+
else
|
78
|
+
@fpath = ""
|
79
|
+
end
|
80
|
+
|
81
|
+
if @last_contents_path
|
82
|
+
@absolutepath_last_contents_path_pn = Pathname.new(get_absolute_path(@last_contents_path))
|
83
|
+
@last_contents_path = @absolutepath_last_contents_path_pn.relative_path_from(@absolutepath_root_pn).to_s
|
84
|
+
else
|
85
|
+
@last_contents_path = ""
|
86
|
+
end
|
87
|
+
hs = { baseurl: @baseurl, fname: @fname, fpath: @fpath, last_datetime: @last_datetime, last_contents_path: @last_contents_path }
|
42
88
|
begin
|
43
89
|
content = YAML.dump(hs)
|
44
90
|
rescue Error => e
|
@@ -51,6 +97,12 @@ module Md2site
|
|
51
97
|
@mes.exc_file_write(@path) { output(@path, content) }
|
52
98
|
end
|
53
99
|
|
100
|
+
#
|
101
|
+
# ダウンロードステータスファイルの内容の取得
|
102
|
+
#
|
103
|
+
# @param path [String] ダウンロードステータスファイルへのパス
|
104
|
+
# @return [String] ダウンロードステータスファイルの内容
|
105
|
+
# @note 引数pathがnilであれば例外発生
|
54
106
|
def get_statusfile(path)
|
55
107
|
unless path
|
56
108
|
raise
|
@@ -63,13 +115,53 @@ module Md2site
|
|
63
115
|
content
|
64
116
|
end
|
65
117
|
|
66
|
-
|
118
|
+
#
|
119
|
+
# ダウンロードステータスファイルの内容の出力(デバッグ用)
|
120
|
+
#
|
121
|
+
# @return [void]
|
122
|
+
def print
|
67
123
|
@mes.output_info("baseurl=#{@baseurl}")
|
68
124
|
@mes.output_info("fname=#{@fname}")
|
69
125
|
@mes.output_info("fpath=#{@fpath}")
|
70
126
|
@mes.output_info("last_datetime=#{@last_datetime}")
|
71
127
|
@mes.output_info("last_contents_path=#{@last_contents_path}")
|
72
|
-
|
128
|
+
end
|
129
|
+
|
130
|
+
private
|
131
|
+
|
132
|
+
#
|
133
|
+
# プロジェクトのルートディレクトリに対する相対パス
|
134
|
+
#
|
135
|
+
# @param path [String] 相対パスにしたいパス
|
136
|
+
# @return [String] プロジェクトのルートディレクトリに対する相対パス
|
137
|
+
def get_relative_path(path)
|
138
|
+
if path
|
139
|
+
to_path_pn = Pathname.new(path)
|
140
|
+
unless to_path_pn.absolute?
|
141
|
+
to_path_pn = to_path_pn.expand_path
|
142
|
+
end
|
143
|
+
else
|
144
|
+
to_path_pn = Pathname.new("")
|
145
|
+
end
|
146
|
+
to_path_pn.relative_path_from(@absolutepath_fpath_pn).to_s
|
147
|
+
end
|
148
|
+
|
149
|
+
#
|
150
|
+
# プロジェクトのルートディレクトリと相対パスを合わせた絶対パスを得る
|
151
|
+
#
|
152
|
+
# @param path [String] 相対パス
|
153
|
+
# @return [String] プロジェクトのルートディレクトリと相対パスを合わせた絶対パスを得る
|
154
|
+
def get_absolute_path(path)
|
155
|
+
if path
|
156
|
+
path_pn = Pathname.new(path)
|
157
|
+
if path_pn.absolute?
|
158
|
+
path_pn.to_s
|
159
|
+
else
|
160
|
+
(@absolutepath_root_pn + path_pn).to_s
|
161
|
+
end
|
162
|
+
else
|
163
|
+
""
|
164
|
+
end
|
73
165
|
end
|
74
166
|
end
|
75
167
|
end
|
data/lib/md2site/testdata.rb
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
module Md2site
|
2
|
+
#
|
3
|
+
# テストデータクラス
|
2
4
|
class Testdata
|
5
|
+
#
|
6
|
+
# 初期化
|
7
|
+
#
|
8
|
+
# @param src_data_dir [String] テストデータのコピー元ディレクトリ
|
9
|
+
# @param templatedir [String] テストデータのテンプレートディレクトリ
|
10
|
+
# @param hash [Hash] 修正対象ハッシュ
|
11
|
+
# @param num [Integer]
|
3
12
|
def initialize(src_data_dir, templatedir, hash, num=1)
|
4
13
|
@hash = hash
|
5
14
|
@src_data_dir = src_data_dir
|
@@ -9,20 +18,29 @@ module Md2site
|
|
9
18
|
require_htmlutils(num) unless defined?(HTMLUtils)
|
10
19
|
end
|
11
20
|
|
21
|
+
#
|
22
|
+
# URLに応じてハッシュの内容を修正する
|
23
|
+
#
|
24
|
+
# @param hash [Hash] 修正対象ハッシュ
|
25
|
+
# @return [void]
|
12
26
|
def check_additional_conf(hash)
|
13
27
|
url = hash["url"]
|
14
28
|
hash["functions_variable"] ||= ""
|
15
|
-
hash["functions_static"] ||= %Q(ROOT_TEMPLATE_FUNCTIONS_VARIABLE=#{
|
29
|
+
hash["functions_static"] ||= %Q(ROOT_TEMPLATE_FUNCTIONS_VARIABLE=#{%q(${ABSOLUTE_PATH_ROOT_TEMPLATE}/functions_variable.erb)})
|
16
30
|
hash["contentDivisionWay"] ||= ""
|
17
31
|
|
18
32
|
case url
|
19
33
|
when /www\.toppers\.jp/
|
20
34
|
hash["contentDivisionWay"] = "CONTENT_DIVISION_WAY=0"
|
21
|
-
hash["functions_variable"] = %Q(ROOT_TEMPLATE_FUNCTIONS_VARIABLE=#{
|
22
|
-
hash["functions_static"] = %Q(ROOT_TEMPLATE_FUNCTIONS_STATIC=#{
|
35
|
+
hash["functions_variable"] = %Q(ROOT_TEMPLATE_FUNCTIONS_VARIABLE=#{%q(${ABSOLUTE_PATH_ROOT_TEMPLATE}/functions_variable.erb)})
|
36
|
+
hash["functions_static"] = %Q(ROOT_TEMPLATE_FUNCTIONS_STATIC=#{%q(${ABSOLUTE_PATH_ROOT_TEMPLATE}/functions_static.erb)})
|
23
37
|
end
|
24
38
|
end
|
25
39
|
|
40
|
+
#
|
41
|
+
# URLに応じたテンプレートディレクトリを得る
|
42
|
+
#
|
43
|
+
# @return [Array<String>] URLに応じたテンプレートディレクトリの配列
|
26
44
|
def template_dir_array
|
27
45
|
array = [@templatedir]
|
28
46
|
|
@@ -34,6 +52,28 @@ module Md2site
|
|
34
52
|
array
|
35
53
|
end
|
36
54
|
|
55
|
+
#
|
56
|
+
# URLに応じたテストデータディレクトリを得る
|
57
|
+
#
|
58
|
+
# @return [Array<String>] URLに応じたテストデータディレクトリの配列
|
59
|
+
def testdata_dir_array
|
60
|
+
array = []
|
61
|
+
|
62
|
+
case @hash["url"]
|
63
|
+
when /www\.toppers\.jp/
|
64
|
+
array << TESTDATA_DIR_TOPPERS
|
65
|
+
when /northern-cross\.info/
|
66
|
+
array << TESTDATA_DIR_TOPPERS
|
67
|
+
end
|
68
|
+
|
69
|
+
array
|
70
|
+
end
|
71
|
+
|
72
|
+
#
|
73
|
+
# 適切なHTMLファイル分割クラスの読み込み
|
74
|
+
#
|
75
|
+
# @param num [Integer]
|
76
|
+
# @return [Array<String>] URLに応じた適切なHTMLファイル分割クラスの読み込み
|
37
77
|
def require_htmlutils(num=1)
|
38
78
|
if @content_division
|
39
79
|
num = @content_division.to_i
|
data/lib/md2site/testx.rb
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
module Md2site
|
2
|
+
#
|
3
|
+
# 全サブコマンド実行クラス
|
2
4
|
class Testx
|
5
|
+
#
|
6
|
+
# 初期化
|
7
|
+
#
|
8
|
+
# @param option [Hash] オプション
|
9
|
+
# @param mes [Messagex] Messagexクラスのインスタンス
|
10
|
+
# @param verbose [Boolean] FileUtilsクラスのメソッドのverbose引数に与える値
|
11
|
+
# @param src_data_dir [String] テストデータコピー元
|
12
|
+
# @param opt_struct [Struct] オプションストラクト
|
3
13
|
def initialize(option, mes, verbose, src_data_dir, opt_struct)
|
4
14
|
@option = option
|
5
15
|
@mes = mes
|
@@ -8,6 +18,11 @@ module Md2site
|
|
8
18
|
@opt_struct = opt_struct
|
9
19
|
end
|
10
20
|
|
21
|
+
#
|
22
|
+
# initサブコマンド実行
|
23
|
+
#
|
24
|
+
# @param option_url [Struct] オプションURL
|
25
|
+
# @return [void]
|
11
26
|
def execute_subcommand_init(option_url)
|
12
27
|
case option_url.value
|
13
28
|
when /northern\-cross\.info/
|
@@ -21,6 +36,10 @@ module Md2site
|
|
21
36
|
end
|
22
37
|
end
|
23
38
|
|
39
|
+
#
|
40
|
+
# initサブコマンドAパターン実行
|
41
|
+
#
|
42
|
+
# @return [void]
|
24
43
|
def init_a(option_url, tsv_filepath, test_data_dir_path)
|
25
44
|
root_path = @option.value
|
26
45
|
optionx = @opt_struct.new("init", root_path)
|
@@ -28,7 +47,7 @@ module Md2site
|
|
28
47
|
init.execute_subcommand(optionx, option_url)
|
29
48
|
|
30
49
|
conf_dir = File.join(root_path, init.hs["conf_dir"])
|
31
|
-
conf_path = File.join(conf_dir, init.
|
50
|
+
conf_path = File.join(conf_dir, init.conf_file)
|
32
51
|
dir = File.dirname(root_path)
|
33
52
|
base = File.basename(root_path)
|
34
53
|
content_path = File.join(dir, %Q(#{base}-contents))
|
@@ -44,12 +63,20 @@ module Md2site
|
|
44
63
|
[conf_path, content_path]
|
45
64
|
end
|
46
65
|
|
66
|
+
#
|
67
|
+
# initサブコマンドBパターン実行
|
68
|
+
#
|
69
|
+
# @return [void]
|
47
70
|
def init_b(option, option_url)
|
48
71
|
@mes.output_warn(%Q(option=#{option.value}))
|
49
72
|
@mes.output_warn(%Q(optionUrl=#{option_url.value}))
|
50
73
|
exit(@mes.ec("EXIT_CODE_NORMAL_EXIT"))
|
51
74
|
end
|
52
75
|
|
76
|
+
#
|
77
|
+
# initサブコマンド以外のサブコマンド実行
|
78
|
+
#
|
79
|
+
# @return [void]
|
53
80
|
def execute_subcommand_remain(env, content_path, str_variable, str_static, obj_by_yaml)
|
54
81
|
setup = Setup.new(env, @mes)
|
55
82
|
optionx = @opt_struct.new("zcontents", content_path)
|
data/lib/md2site/version.rb
CHANGED
data/lib/md2site.rb
CHANGED
@@ -1,36 +1,70 @@
|
|
1
1
|
require "md2site/version"
|
2
2
|
|
3
|
+
#
|
4
|
+
# Markdown形式ファイルによるサイト作成
|
3
5
|
module Md2site
|
6
|
+
# 構成ファイル名
|
4
7
|
CONF_FILE = "conf.sh"
|
8
|
+
# 構成ディレクトリ名
|
5
9
|
CONF_DIR = "conf"
|
10
|
+
# テンプレートディレクトリ名
|
6
11
|
TEMPLATE_DIR = "template"
|
12
|
+
# 出力ディレクトリ名
|
7
13
|
OUTPUT_DIR = "output"
|
14
|
+
# ソースディレクトリ名
|
8
15
|
SRC_DIR = "src"
|
16
|
+
# データディレクトリ名
|
9
17
|
DATA_DIR = "data"
|
18
|
+
# ワークディレクトリ名
|
10
19
|
WORK_DIR = "work"
|
20
|
+
# 素材ディレクトリ名
|
11
21
|
MATERIAL_DIR = "material"
|
22
|
+
# ダウンロードステータスファイル
|
12
23
|
STATUS_FILE = "status.txt"
|
24
|
+
# サイト構成ファイル
|
13
25
|
SITE_FILE = "site.tsv"
|
26
|
+
# サイト固有設定ファイル
|
14
27
|
SETTING_FILE = "setting.yml"
|
28
|
+
# カテゴリ構成ファイルプレフィックス
|
15
29
|
CATEGORY_CONF_PREFIX = "conf-"
|
30
|
+
# デフォルトテーブルテンプレートファイル名
|
16
31
|
DEFAULT_TABLE_TEMPLATE_FILE = "5col_no_attr_b.erb"
|
32
|
+
# デフォルトURL設定
|
17
33
|
DEFAULT_URL_SETTING = %Q(# URL=http://example.com)
|
18
|
-
|
34
|
+
# urlを示すハッシュのキー
|
19
35
|
KEY_URL = "url"
|
36
|
+
# カテゴリ構成ファイル中のINCLUDE指示子
|
20
37
|
INCLUDE_INDICATOR = ":include"
|
38
|
+
# infoサブコマンドのzindexオプションで生成されるHTMLファイル名
|
21
39
|
ZINDEX_HTML_FILE = "zindex.html"
|
40
|
+
# 全てのターゲットを示すターゲットコマンド名
|
22
41
|
TARGET_COMMAND_OF_ALL = "_z"
|
42
|
+
# サブターゲットを全ての示すサブターゲットコマンド名
|
23
43
|
SUB_TARGET_COMMAND_OF_ALL = "_z"
|
44
|
+
# ダウンロードファイル一覧ファイル名
|
24
45
|
LIST_FILE = "filelist.tsv"
|
46
|
+
# ダウンロードファイル一覧ファイルのファイル名フィールドのフィールド名
|
25
47
|
FIELD_FILENMAE = "filename"
|
48
|
+
# ダウンロードファイル一覧ファイルの日時フィールドのフィールド名
|
26
49
|
FIELD_DATETIMESTR = "datetimestr"
|
50
|
+
# ダウンロードファイル一覧ファイルのUNIXタイムフィールドのフィールド名
|
27
51
|
FIELD_UNIXTIME = "unixtime"
|
52
|
+
# ダウンロードファイル一覧ファイルのMD5値フィールドのフィールド名
|
28
53
|
FIELD_MD5 = "md5"
|
54
|
+
# テストデータディレクトリ下の第2テンプレート用のサブディレクトリ名
|
29
55
|
TEMPLATE_DIR2 = "template2"
|
56
|
+
# テストデータディレクトリ下のtoppersサイト用ディレクトリ
|
57
|
+
TESTDATA_DIR_TOPPERS = "testdata0/conf"
|
58
|
+
# テストデータディレクトリ下のnciサイト用ディレクトリ
|
59
|
+
TESTDATA_DIR_NCI = "testdata/conf"
|
30
60
|
|
61
|
+
#
|
62
|
+
# Md2siteモジュール内でのエラークラス
|
31
63
|
class Error < StandardError; end
|
32
64
|
# Your code goes here...
|
33
65
|
|
66
|
+
#
|
67
|
+
# Markdown形式ファイルによるサイト作成クラス
|
34
68
|
class Md2site
|
35
69
|
require "mdextab"
|
36
70
|
require "messagex"
|
@@ -38,6 +72,7 @@ module Md2site
|
|
38
72
|
require "open3"
|
39
73
|
require "tempfile"
|
40
74
|
require "md2site/env"
|
75
|
+
require "md2site/envcheck"
|
41
76
|
require "md2site/init"
|
42
77
|
require "md2site/testdata"
|
43
78
|
require "md2site/setup"
|
@@ -45,8 +80,13 @@ module Md2site
|
|
45
80
|
require "md2site/make"
|
46
81
|
require "md2site/testx"
|
47
82
|
|
48
|
-
|
49
|
-
|
83
|
+
#
|
84
|
+
# 初期化
|
85
|
+
#
|
86
|
+
# @param opts [Hash] オプション
|
87
|
+
# @option opts [Boolean] :debug nilでなければMessagexクラスのインスタンスに与えるデバッグモードであり、かつFileUtilsクラスのインスタンスメソッドに与える:verboseオプションの値を真にする
|
88
|
+
# @option opts [Boolean] :verbose nilでなければMessagexクラスのインスタンスに与えるデバッグモードであり、、かつFileUtilsクラスのインスタンスメソッドに与える:verboseオプションの値を真にする
|
89
|
+
# @option opts [String] :logfile Messagexクラスのインスタンスに与えるLoggerの出力先ファイル名
|
50
90
|
def initialize(opts)
|
51
91
|
@src_data_dir = File.expand_path(File.dirname(__FILE__) + %q(/../data))
|
52
92
|
|
@@ -56,10 +96,10 @@ module Md2site
|
|
56
96
|
@setup = nil
|
57
97
|
@info = nil
|
58
98
|
|
59
|
-
if opts[
|
99
|
+
if opts[:debug]
|
60
100
|
@debug = :debug
|
61
101
|
@verbose = true
|
62
|
-
elsif opts[
|
102
|
+
elsif opts[:verbose]
|
63
103
|
@debug = :verbose
|
64
104
|
@verbose = true
|
65
105
|
else
|
@@ -67,7 +107,7 @@ module Md2site
|
|
67
107
|
@verbose = false
|
68
108
|
end
|
69
109
|
|
70
|
-
@mes = Messagex::Messagex.new("EXIT_CODE_NORMAL_EXIT", 0, @debug, nil, opts[
|
110
|
+
@mes = Messagex::Messagex.new("EXIT_CODE_NORMAL_EXIT", 0, @debug, nil, opts[:logfile])
|
71
111
|
@mes.register_exc
|
72
112
|
@mes.add_exitcode("EXIT_CODE_BY_CANNOT_FIND_TARGET")
|
73
113
|
@mes.add_exitcode("EXIT_CODE_BY_CANNOT_FIND_SUBTARGET")
|
@@ -82,51 +122,77 @@ module Md2site
|
|
82
122
|
option_parse(opts)
|
83
123
|
end
|
84
124
|
|
125
|
+
#
|
126
|
+
# オプション解析
|
127
|
+
#
|
128
|
+
# @param opts [Hash] オプション
|
129
|
+
# @option opts [String,nil] :targetCommand nilでなければターゲットコマンド名
|
130
|
+
# @option opts [String,nil] :subTargetCommand nilでなければサブターゲットコマンド名
|
131
|
+
# @option opts [String,nil] :zcontents nilでなければダウンロード先ディレクトリ名
|
132
|
+
# @option opts [String,nil] :contentUpdate nilでなければアップデート元ディレクトリ名
|
133
|
+
# @option opts [String,nil] :getfiles nilでなければダウンロード先ディレクトリ名
|
134
|
+
# @option opts [true,nil] :zlist nilでなければinfoサブコマンドのzlistオプションが有効
|
135
|
+
# @option opts [true,nil] :zindex nilでなければinfoサブコマンドのzindexオプションが有効
|
136
|
+
# @option opts [true,nil] :contentUpdate nilでなければsetupサブコマンドのzupdateオプションが有効
|
137
|
+
# @option opts [String,nil] :init nilでなければプロジェクトルートディレクトリ
|
138
|
+
# @option opts [String,nil] :url nilでなければダウンロード対象URL
|
139
|
+
# @option opts [String] :confPath 構成ファイルパス
|
140
|
+
# @return [void]
|
85
141
|
def option_parse(opts)
|
86
|
-
@target_command = opts[
|
87
|
-
@subtarget_command = opts[
|
88
|
-
if opts[
|
89
|
-
@option = @opt_struct.new("
|
90
|
-
elsif opts[
|
91
|
-
@option = @opt_struct.new("zcontents", opts["zcontents"])
|
92
|
-
elsif opts["contentUpdate"]
|
142
|
+
@target_command = opts[:targetCommand]
|
143
|
+
@subtarget_command = opts[:subTargetCommand]
|
144
|
+
if opts[:zcontents]
|
145
|
+
@option = @opt_struct.new("zcontents", opts[:zcontents])
|
146
|
+
elsif opts[:contentUpdate]
|
93
147
|
@option = @opt_struct.new("contentUpdate")
|
94
|
-
elsif opts[
|
95
|
-
@option = @opt_struct.new("getfiles", opts[
|
96
|
-
elsif opts[
|
148
|
+
elsif opts[:getfiles]
|
149
|
+
@option = @opt_struct.new("getfiles", opts[:getfiles])
|
150
|
+
elsif opts[:zlist]
|
97
151
|
@option = @opt_struct.new("zlist")
|
98
|
-
elsif opts[
|
152
|
+
elsif opts[:zindex]
|
99
153
|
@option = @opt_struct.new("zindex")
|
100
|
-
elsif opts[
|
101
|
-
@option = @opt_struct.new("zsetup", opts[
|
102
|
-
elsif opts[
|
103
|
-
@option = @opt_struct.new("init", opts[
|
154
|
+
elsif opts[:zsetup]
|
155
|
+
@option = @opt_struct.new("zsetup", opts[:zsetup])
|
156
|
+
elsif opts[:init]
|
157
|
+
@option = @opt_struct.new("init", opts[:init])
|
104
158
|
end
|
105
159
|
|
106
160
|
@option_url = nil
|
107
|
-
if opts[
|
108
|
-
@option_url = @opt_struct.new("url", opts[
|
161
|
+
if opts[:url]
|
162
|
+
@option_url = @opt_struct.new("url", opts[:url])
|
109
163
|
end
|
110
|
-
|
164
|
+
|
165
|
+
@option_conf_path = @opt_struct.new("confPath", opts[:confPath])
|
111
166
|
end
|
112
167
|
|
168
|
+
#
|
169
|
+
# 構成ファイル、サイト固有設定ファイルで初期化
|
170
|
+
#
|
171
|
+
# @param conf_path [String] 構成ファイルパス
|
172
|
+
# @param src_data_dir [String] インストール先データディレクトリ名
|
113
173
|
def setup_env(conf_path, src_data_dir)
|
114
174
|
unless File.exist?(conf_path)
|
115
175
|
@mes.output_fatal("Can't find #{conf_path} specified by -c or --confpath option")
|
116
176
|
exit(@mes.ec("EXIT_CODE_CANNOT_FIND_CONFPATH"))
|
117
177
|
end
|
118
178
|
|
179
|
+
# 構成ファイル読み込みEnvクラスのインスタンスの属性としてアクセス可能にする
|
119
180
|
@env = Env.new(conf_path, @mes, @verbose)
|
120
181
|
|
182
|
+
# サイト固有設定ファイル(YAML形式ファイル)を読み込み、Rubyのハッシュとしてアクセス可能にする
|
121
183
|
@obj_by_yaml = Filex::Filex.check_and_load_yamlfile(@env.absolutepath_root_settingfile, @mes)
|
122
184
|
|
123
|
-
Testdata.new(src_data_dir, @init.
|
185
|
+
# Testdata.new(src_data_dir, @init.template_dir, @env.conf_hs)
|
124
186
|
fname_variable = @env.conf_hs["ROOT_TEMPLATE_FUNCTIONS_VARIABLE"]
|
125
187
|
@str_variable = Filex::Filex.check_and_load_file(fname_variable, @mes) if fname_variable
|
126
188
|
fname_static = @env.conf_hs["ROOT_TEMPLATE_FUNCTIONS_STATIC"]
|
127
189
|
@str_static = ["<% ", Filex::Filex.check_and_expand_file(fname_static, @obj_by_yaml, @mes), "%>"].join("\n") if fname_static
|
128
190
|
end
|
129
191
|
|
192
|
+
#
|
193
|
+
# サブコマンド実行
|
194
|
+
#
|
195
|
+
# @param cmd [String] サブコマンド名
|
130
196
|
def execute_command(cmd)
|
131
197
|
@init ||= Init.new(@src_data_dir, @mes, @verbose)
|
132
198
|
|
@@ -136,6 +202,7 @@ module Md2site
|
|
136
202
|
@testx ||= Testx.new(@option, @mes, @verbose, @src_data_dir, @opt_struct)
|
137
203
|
conf_path, content_path = testx.execute_subcommandInit(@option_url)
|
138
204
|
setup_env(conf_path, @src_data_dir)
|
205
|
+
|
139
206
|
@testx.execute_subcommandRemain(@env, content_path, @str_variable, @str_static, @obj_by_yaml)
|
140
207
|
else
|
141
208
|
setup_env(@option_conf_path.value, @src_data_dir) unless @env
|
@@ -144,7 +211,7 @@ module Md2site
|
|
144
211
|
when "make"
|
145
212
|
@make ||= Make.new(@env, @mes, @verbose, @str_variable, @str_static, @obj_by_yaml)
|
146
213
|
if @target_command == "_z"
|
147
|
-
@env.commands.map {|x| @make.do_multiple_commands(x
|
214
|
+
@env.commands.keys.map {|x| @make.do_multiple_commands(x) }
|
148
215
|
else
|
149
216
|
@make.execute_subcommand(@target_command, @subtarget_command)
|
150
217
|
end
|
data/md2site.gemspec
CHANGED
@@ -36,24 +36,23 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
37
37
|
spec.require_paths = ["lib"]
|
38
38
|
|
39
|
-
spec.add_runtime_dependency "bundler", "~> 2.0"
|
40
39
|
|
41
|
-
spec.add_development_dependency "bundler", "~> 2.0"
|
42
40
|
spec.add_development_dependency "rake", "~> 10.0"
|
43
41
|
spec.add_development_dependency "rspec", "~> 3.0"
|
44
42
|
spec.add_development_dependency "byebug"
|
45
|
-
spec.add_development_dependency "power_assert", "~> 1.1.4"
|
46
43
|
spec.add_development_dependency "test-unit"
|
47
44
|
spec.add_development_dependency "test-unit-rr"
|
48
|
-
spec.add_development_dependency "rubocop"
|
45
|
+
spec.add_development_dependency "rubocop", "0.69.0"
|
49
46
|
spec.add_development_dependency "rubocop-performance"
|
47
|
+
spec.add_development_dependency "power_assert", "~> 1.1.5"
|
50
48
|
|
49
|
+
spec.add_runtime_dependency "bundler", "~> 2.0"
|
51
50
|
spec.add_runtime_dependency "simpleoptparse"
|
52
51
|
spec.add_runtime_dependency "erubis"
|
53
52
|
spec.add_runtime_dependency "mdextab", "~> 0.1.4"
|
54
53
|
spec.add_runtime_dependency "nokogiri"
|
55
|
-
spec.add_runtime_dependency "messagex"
|
56
|
-
spec.add_runtime_dependency "filex"
|
54
|
+
spec.add_runtime_dependency "messagex", "~> 0.1.3"
|
55
|
+
spec.add_runtime_dependency "filex", "~> 0.1.3"
|
57
56
|
spec.add_runtime_dependency "faraday"
|
58
57
|
spec.add_runtime_dependency "faraday_middleware"
|
59
58
|
end
|