md2site 0.1.2 → 0.1.4
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/.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
|