flist 0.1.32 → 0.1.33

Sign up to get free protection for your applications and to get access to all the features.
data/lib/flist/flist.rb CHANGED
@@ -7,11 +7,11 @@ require 'ykutils/erubyx'
7
7
  require 'ykxutils/yamlx'
8
8
 
9
9
  require_relative 'flist/filelist'
10
- require_relative 'flist/store'
11
10
 
12
11
  require 'date'
13
-
12
+ require 'yaml'
14
13
  module Flist
14
+ # ファイル一覧クラス
15
15
  class Flist
16
16
  attr_accessor :encx
17
17
 
@@ -21,54 +21,78 @@ module Flist
21
21
 
22
22
  def_delegators(:@dbmgr, :dirz_add)
23
23
  def_delegators(:@dbmgr, :output)
24
- def_delegators(:@dbmgr, :post_process)
24
+ def_delegators(:@dbmgr, :dirz_post_process)
25
+ def_delegators(:@dbmgr, :flistz_post_process)
25
26
  def_delegators(:@dbmgr, :post_process)
26
27
 
27
- # ディレクトリハス、またはファイルパスを表すStructクラスのサブクラス
28
+ # ファイル情報アイテムクラス(ディレクトリハス、またはファイルパスを表すStructクラスのサブクラス)
28
29
  @item_class = Struct.new(:level, :kind, :re, :path)
29
30
 
31
+ # ファイル情報アイテムクラスのインスタンス生成
30
32
  def self.make_instance_of_item_class(level, key, regexp, path)
31
33
  @item_class.new(level, key, regexp, path)
32
34
  end
33
35
 
34
- def initialize(_kind, hash, _opts)
35
- debug_utils_init
36
+ # 初期化
37
+ def initialize(hash, opts)
38
+ # debug_utils_init
36
39
  # set_debug(true)
37
- set_debug(false)
40
+ set_debug(opts['verbose'])
38
41
 
39
42
  @flielists = []
40
43
  # yamlfname = "env-a1.yaml"
41
- # 設定ファイル
42
- yamlfname = 'env-a2.yaml'
44
+ # YAML形式ファイル config.yml を読み込み、ファイルシステムの判定に用いる
45
+ d_puts("opts['config']=#{opts['config']}")
46
+ d_puts('#=====')
47
+ config_from_file(opts['config'])
48
+ # d_p(@config)
49
+ # opts["env"]
43
50
  # determine_filesystemメソッドの返値であるハッシュには、
44
51
  # ホームディレクトリ(キー:home)、ドライブ(キー:Cや:d)を表す、UNIX式パスまたは
45
52
  # WINDOWS式パスが含まれる。
53
+ # d_p("opts['env']=#{opts['env']}")
54
+ d_puts(%(opts["env"]=#{opts['env']}))
55
+ d_puts(%(@config=#{@config}))
56
+ @dir = determine_filesystem(opts['env'])
46
57
  # ホームディレクトリまたはドライブのトップディレクトリの直下に引数で指定した
47
58
  # ファイルが存在し、かつ返値に含まれる絶対パスを用いてアクセス可能
48
- @dir = determine_filesystem(yamlfname)
49
- d_puts "0 @dir=#{@dir}"
50
59
  # @dir[:home]は絶対パスなので、@dir[:home]の直下に変数yamlfnameが存在する
51
- fname = File.expand_path(File.join(@dir[:home], yamlfname))
52
- scope = self
53
- value_hash = {}
60
+
54
61
  # 変数fnameは、Eruby形式のファイルのパスを表す
55
- # Erbuy形式のファイルをselfのコンテキストで展開されたものをYAML形式とみなして
62
+ # Erbuy形式のファイルをscope(コンテキスト)で展開されたものをYAML形式とみなして
56
63
  # 解釈して、ハッシュに変換する
64
+ d_p(@dir)
65
+ d_p(@dir['home'])
66
+ d_p(opts['env'])
67
+ d_puts("@dir=#{@dir}")
68
+ fname = File.expand_path(opts['env'], @dir['home'])
69
+ d_p("env fname=#{fname}")
70
+
71
+ # scope = Object.new
72
+ scope = self
73
+ value_hash = {}
74
+ # @dir.keys.each do |key|
75
+ @dir.each do |key, value|
76
+ # value_hash[key.to_sym] = @dir[key]
77
+ value_hash[key.to_sym] = value
78
+ end
79
+ d_p(value_hash)
57
80
  content = Ykutils::Erubyx.erubi_render_with_template_file(fname, scope, value_hash)
58
81
  yaml = Ykxutils.yaml_load_compati(content)
59
- # x_get_debug = get_debug
60
- d_puts "yaml=#{yaml}"
61
82
 
62
83
  # 指定エンコードディングに基づいてパスを扱うEncxクラスのインスタンス生成
63
84
  Encx::Encx.init('UTF-8')
64
85
  @encx = Encx::Encx.encx
65
86
 
66
- # 引数hashとして渡されたハッシュで指定された設定うぃを用いてDB接続
87
+ # 引数hashとして渡されたハッシュで指定された設定を用いてDB接続
88
+ # d_puts("# hash=#{hash}")
67
89
  db_dir = hash['db_dir']
90
+ # d_puts("db_dir=#{db_dir}")
68
91
  config_dir = hash['config_dir']
69
92
  env = hash['env']
70
93
  dbconfig = hash['dbconfig']
71
- @output_dir = hash['output_dir']
94
+ # A method of the `FlistMgr` class.
95
+ # output_dir = hash['output_dir']
72
96
  @pstore_dir = hash['pstore_dir']
73
97
 
74
98
  dbconfig_path = Arxutils_Sqlite3::Util.make_dbconfig_path(config_dir, dbconfig)
@@ -85,7 +109,9 @@ module Flist
85
109
 
86
110
  # 検索時のトップディレクトリのハッシュ
87
111
  # キーは、トップディレクトリをまとめるグループを表す文字列
112
+ # d_p("yaml=#{yaml}")
88
113
  @topdirhs = yaml['flist']['topdirhs']
114
+ # d_p("@topdirhs=#{@topdirhs}")
89
115
  # ログディレクトリへのパス
90
116
  @logdir = yaml['flist']['logdir']
91
117
 
@@ -97,37 +123,32 @@ module Flist
97
123
  regist_dirz
98
124
  end
99
125
 
100
- # ホームディレクトリ、ドライブのトップディレクトリを表すUNIX式のパス、Windows式のパス
101
- # を用意し、
126
+ # Reading a YAML file and storing the contents in the instance variable `@config`.
127
+ def
128
+ config_from_file(fname)
129
+ # d_p("fname=#{fname}")
130
+ @config = Ykxutils.yaml_load_file_compati(fname)
131
+ # d_p(@config)
132
+ end
133
+
134
+ # プラットフォームの判別をし、ホームディレクトリ、ドライブのトップディレクトリ
135
+ # を表す適切なパスを返す
102
136
  def determine_filesystem(fname)
103
- [
104
- {
105
- home: '/mnt/z/BACKUP/ykomi-202008/home',
106
- c: '/mnt/c',
107
- v: '/mnt/v',
108
- x: '/mnt/x',
109
- z: '/mnt/z'
110
- },
111
-
112
- {
113
- home: File.expand_path(Dir.home),
114
- c: 'C:',
115
- v: 'V:',
116
- x: 'X:',
117
- z: 'Z:'
118
- }
119
- ].find do |x|
120
- path = File.expand_path(File.join(File.expand_path(x[:home]), fname))
121
- d_puts("path=#{path}")
137
+ d_puts("@config=#{@config}")
138
+ d_puts('#####################')
139
+ @config.find do |x|
140
+ path = File.join(x['home'], fname)
141
+ # d_p("df path=#{path}")
122
142
  File.exist?(path)
123
143
  end
124
144
  end
125
145
 
126
- def init_skip_dirs(yaml)
146
+ # スキップディレクトリ情報の初期化
147
+ def init_skip_dirs(hash)
127
148
  # スキップディレクトリを表すハッシュ
128
149
  # キーはスキップディレクトリスキップディレクトリのパスの配列
129
150
  @skip_dirs = {}
130
- skip_dirs_array = yaml['flist']['skip_dirs_array']
151
+ skip_dirs_array = hash['flist']['skip_dirs_array']
131
152
  skip_dirs_array.each do |x|
132
153
  x_str = File.expand_path(x)
133
154
  re_esc = Regexp.escape(x_str)
@@ -136,6 +157,7 @@ module Flist
136
157
  end
137
158
  end
138
159
 
160
+ # システムのトップディレクトリ情報の初期化
139
161
  def init_topx(yaml)
140
162
  # このシステムのトップディレクトリを表すハッシュ
141
163
  # キーは番号、値はトップディレクトリのパスの配列
@@ -148,8 +170,8 @@ module Flist
148
170
  @topx[:all] = []
149
171
 
150
172
  @tops.each do |no, path_array|
151
- d_puts "no=#{no}"
152
- d_puts "path_array=#{path_array}"
173
+ # d_puts "no=#{no}"
174
+ # d_puts "path_array=#{path_array}"
153
175
  next unless path_array
154
176
 
155
177
  path_array.each do |path|
@@ -181,36 +203,36 @@ module Flist
181
203
 
182
204
  # 設定ファイルの["topdirhs"]で定義された全グループで指定された全ディレクトリ登録
183
205
  def regist_dirz
184
- d_puts('########## regist_dirz S')
185
- d_puts("@topdirhs.size=#{@topdirhs.size}")
206
+ # d_puts('########## regist_dirz S')
207
+ # d_puts("@topdirhs.size=#{@topdirhs.size}")
186
208
  dirz_array = []
187
209
  # 検索時のトップディレクトリのハッシュ
188
210
  # キーは、トップディレクトリをまとめるグループを表す文字列
189
- @topdirhs.each do |group, v|
190
- d_puts("regist_dirz group=#{group}")
191
- d_puts("regist_dirz v=#{v}")
211
+ @topdirhs.each do |_group, v|
212
+ # d_puts("regist_dirz group=#{group}")
213
+ # d_puts("regist_dirz v=#{v}")
192
214
  # キーはグループに対応するディレクトリ
193
215
  v.each do |path, v0|
194
- d_puts("regist_dirz path=#{path}")
195
- d_puts("regist_dirz v0=#{v0}")
196
- d_puts("v0.class=#{v0.class}")
216
+ # d_puts("regist_dirz path=#{path}")
217
+ # d_puts("regist_dirz v0=#{v0}")
218
+ # d_puts("v0.class=#{v0.class}")
197
219
  # キーはグループのディレクトリの直下に存在するディレクトリ
198
220
  # 値はハッシュ { "dir_id" => ディレクトリ番号, "fname" => ファイル名 }
199
221
  v0.each do |dir, v1|
200
- d_puts "dir=#{dir}"
201
- d_puts "v1=#{v1}"
222
+ # d_puts "dir=#{dir}"
223
+ # d_puts "v1=#{v1}"
202
224
  x_dir = @encx.convert(dir)
203
- d_puts "v1['dir_id']=#{v1['dir_id']}"
225
+ # d_puts "v1['dir_id']=#{v1['dir_id']}"
204
226
  x_str = @encx.convert(v1['fname'])
205
227
  full_path = File.expand_path(File.join(x_dir, x_str), path)
206
- d_puts "regist_dirz path=#{full_path}"
228
+ # d_puts "regist_dirz path=#{full_path}"
207
229
  dirz = dirz_add(full_path) if File.exist?(full_path)
208
230
  dirz_array << dirz
209
- d_puts '#~~~~~~'
231
+ # d_puts '#~~~~~~'
210
232
  end
211
233
  end
212
234
  end
213
- d_puts('########## regist_dirz E')
235
+ # d_puts('########## regist_dirz E')
214
236
  dirz_array
215
237
  end
216
238
 
@@ -222,7 +244,7 @@ module Flist
222
244
  x_path = @encx.convert(path)
223
245
  # キーはグループのディレクトリの直下に存在するディレクトリ
224
246
  hash0.each do |dir, hash1|
225
- d_puts "hash1=#{hash1}"
247
+ # d_puts "hash1=#{hash1}"
226
248
  fname = hash1['fname']
227
249
  x_fname = @encx.convert(fname)
228
250
  x_dir = @encx.convert(dir)
@@ -232,9 +254,9 @@ module Flist
232
254
  csvx = Csvx.new(csvpath)
233
255
 
234
256
  dir_id = hash1['dir_id']
235
- d_puts "dir_id=#{dir_id}"
236
- d_puts x_path
237
- d_puts x_dir
257
+ # d_puts "dir_id=#{dir_id}"
258
+ # d_puts x_path
259
+ # d_puts x_dir
238
260
  top_path = File.expand_path(File.join(x_path, x_dir))
239
261
  if File.exist?(top_path)
240
262
  filelist = Filelist.new(@dbmgr, csvx, @encx, @skip_dirs, dir_id, top_path, 0, group.to_sym)
@@ -249,18 +271,32 @@ module Flist
249
271
  end
250
272
  end
251
273
 
274
+ # repoグループのファイル一覧
252
275
  def listup_repo
253
276
  listup_x('repo')
254
277
  end
255
278
 
279
+ # simpleグループのファイル一覧
256
280
  def listup_simple
257
281
  listup_x('simple')
258
282
  end
259
283
 
284
+ # simple2グループのファイル一覧
285
+ def listup_simple2
286
+ listup_x('simple2')
287
+ end
288
+
289
+ # simple3グループのファイル一覧
290
+ def listup_simple3
291
+ listup_x('simple3')
292
+ end
293
+
294
+ # ディレクトリIDが1の場合のDBに格納されたファイル情報取得
260
295
  def lx
261
296
  Flistz.where(dir_id: 1).select(:id)
262
297
  end
263
298
 
299
+ # 指定階層数分の指定ディレクトリ以下のサブディレクトリのリストを得る
264
300
  def get_directory_list(dir_path, level)
265
301
  # 引数s
266
302
  ary = []
@@ -277,6 +313,8 @@ module Flist
277
313
  ary
278
314
  end
279
315
 
316
+ # 設定ファイルでの["flist"]["tops"]に設定されたディレクトリ以下
317
+ # のディレクトリのリストを得る
280
318
  def listx
281
319
  # 設定ファイルでの["flist"]["tops"]に対応するハッシュ
282
320
  # ここでは、["flist"]["tops"]のキー(番号)を表す
@@ -291,6 +329,7 @@ module Flist
291
329
  end.flatten
292
330
  end
293
331
 
332
+ # 全体のログファイルとしてCsvxクラスのインスタンス生成
294
333
  def make_csvx
295
334
  x_fname = 'all.csv'
296
335
  x_logdir = @encx.convert(@logdir)
@@ -298,16 +337,17 @@ module Flist
298
337
  Csvx.new(csvpath)
299
338
  end
300
339
 
340
+ # 設定ファイルの['flist']['tops]に格納されたトップディレクトリ以下の
341
+ # ディレクトリ、ファイルのリストを得る
301
342
  def list_a
302
- d_puts '####### list_a'
343
+ # d_puts '####### list_a'
303
344
  list_x = listx
304
- d_puts list_x.size
345
+ # d_puts list_x.size
305
346
 
306
347
  csvx = make_csvx
307
348
  # 設定ファイルの['flist']['tops]に格納されたトップディレクトリ
308
349
  # とその直下のサブディレクトリすべてのパス
309
350
  list_x.each do |x|
310
- # puts "####### list_a 1 x=#{x}|"
311
351
  top_path = @encx.convert(x)
312
352
  # dirzテーブルへ登録
313
353
  dirz = @dbmgr.dirz_add(top_path)
@@ -316,7 +356,7 @@ module Flist
316
356
  level = ary.size
317
357
 
318
358
  filelist = Filelist.new(@dbmgr, csvx, @encx, @skip_dirs, dirz.id, top_path, level)
319
- d_puts("list_a level=#{level} top_path=#{top_path}")
359
+ # d_puts("list_a level=#{level} top_path=#{top_path}")
320
360
  filelist.scanx(top_path, level)
321
361
  end
322
362
  csvx.finish
data/lib/flist/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Flist
4
- VERSION = '0.1.32'
4
+ VERSION = '0.1.33'
5
5
  end
data/lib/flist.rb CHANGED
@@ -2,6 +2,8 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'arxutils_sqlite3'
5
+ require 'ykutils'
6
+ require 'ykxutils'
5
7
 
6
8
  require_relative 'dbacrecord'
7
9
  require_relative 'flist/version'
@@ -11,12 +13,45 @@ require_relative 'flist/dbutil'
11
13
  require_relative 'flist/cli'
12
14
  require_relative 'flist/csvx'
13
15
 
14
- require_relative 'flist/flist/store'
15
16
  require_relative 'flist/flist/filelist'
16
17
 
17
18
  module Flist
18
- OUTPUT_DIR = 'output'
19
+ # トップディレクトリ
20
+ TOP_DIR = Pathname(__FILE__).parent
21
+ # テンプレートディレクトリへのパス
22
+ TEMPLATE_DIR = TOP_DIR.join('template')
23
+ # DB構成格納用ディレクトリ名
24
+ CONFIG_DIR_NAME = 'config'
25
+ # コンフィグディレクトリへのパス
26
+ CONFIG_DIR = Pathname.new(CONFIG_DIR_NAME)
27
+
28
+ OUTPUT_DIR_NAME = 'output'
29
+ OUTPUT_DIR = OUTPUT_DIR_NAME
19
30
  # PSTORE_DIR = "pstore"
20
31
  PSTORE_DIR = 'pstore'
21
32
  PSTORE_KEY = :TOP
33
+ ERB_CONFIG_YAML_FILE = TEMPLATE_DIR.join('config_yml.erb')
34
+ SAMPLE_CONFIG_YAML_FILE = CONFIG_DIR.join('config_sample.yml')
35
+ CONFIG_YAML_FILE = CONFIG_DIR.join('config.yml')
36
+ EXIT_CODE_INVALID_CODE = 10
37
+ EXIT_CODE_INVALID_DIR = 20
38
+
39
+ class Error < StandardError; end
40
+
41
+ class InvalidMakeItemArgsError < ArgumentError
42
+ # def message
43
+ # end
44
+ end
45
+
46
+ class InvalidSacnxSubArgumentError < ArgumentError
47
+ end
48
+
49
+ class InvalidDirIdError < ArgumentError
50
+ end
51
+
52
+ class InvalidRepoError < ArgumentError
53
+ end
54
+
55
+ class InvalidCommitError < ArgumentError
56
+ end
22
57
  end
@@ -0,0 +1,15 @@
1
+ ---
2
+ -
3
+ home: '<%= File.expand_path(Dir.home) %>'
4
+ c: '/mnt/c'
5
+ e: '/mnt/e'
6
+ v: '/mnt/e/V'
7
+ x: '/mnt/e/X'
8
+ z: '/mnt/z'
9
+ -
10
+ home: '<%= File.expand_path(Dir.home) %>'
11
+ c: 'C:'
12
+ e: 'E:'
13
+ v: 'E:\V'
14
+ x: 'E:\X'
15
+ z: 'Z:'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.32
4
+ version: 0.1.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - yasuo kominami
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-28 00:00:00.000000000 Z
11
+ date: 2022-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: arxutils_sqlite3
@@ -186,6 +186,7 @@ executables:
186
186
  extensions: []
187
187
  extra_rdoc_files: []
188
188
  files:
189
+ - ".github/workflows/main.yml"
189
190
  - ".gitignore"
190
191
  - ".rspec"
191
192
  - ".rubocop.yml"
@@ -198,6 +199,9 @@ files:
198
199
  - bin/console
199
200
  - bin/setup
200
201
  - config/.gitkeep
202
+ - config/config.yml
203
+ - config/config_sample.yml
204
+ - config/config_yml.sample
201
205
  - config/db_scheme.yml
202
206
  - config/db_scheme.yml.sample
203
207
  - config/dbsetup.rb
@@ -207,13 +211,9 @@ files:
207
211
  - config/sqlite3.yml
208
212
  - config/tmp/db_scheme.yml
209
213
  - db/migrate/010_create_countdatetime.rb
210
- - db/migrate/020_create_dirz.rb
211
214
  - db/migrate/020_create_flistz.rb
212
- - db/migrate/030_create_flistz.rb
213
215
  - db/migrate/030_create_invalidflistz.rb
214
216
  - db/migrate/040_create_currentflistz.rb
215
- - db/migrate/040_create_invalidflistz.rb
216
- - db/migrate/050_create_currentflistz.rb
217
217
  - db/migrate/050_create_dirz.rb
218
218
  - db/migrate/060_create_invaliddirz.rb
219
219
  - db/migrate/070_create_currentdirz.rb
@@ -222,6 +222,7 @@ files:
222
222
  - lib/dbacrecord.rb
223
223
  - lib/flist.rb
224
224
  - lib/flist/cli.rb
225
+ - lib/flist/config.rb
225
226
  - lib/flist/csvx.rb
226
227
  - lib/flist/dbutil.rb
227
228
  - lib/flist/dbutil/dbmgr.rb
@@ -229,8 +230,8 @@ files:
229
230
  - lib/flist/dbutil/flistzmgr.rb
230
231
  - lib/flist/flist.rb
231
232
  - lib/flist/flist/filelist.rb
232
- - lib/flist/flist/store.rb
233
233
  - lib/flist/version.rb
234
+ - lib/template/config_yml.erb
234
235
  homepage: ''
235
236
  licenses:
236
237
  - MIT
@@ -1,12 +0,0 @@
1
- class CreateDirz < ActiveRecord::Migration[6.0]
2
- def self.up
3
- create_table :dirzs do |t|
4
- t.column :path, :string, :null => false
5
- t.column :start_datetime, :datetime, :null => false
6
- end
7
- end
8
-
9
- def self.down
10
- drop_table :dirzs
11
- end
12
- end
@@ -1,22 +0,0 @@
1
- class CreateFlistz < ActiveRecord::Migration[6.0]
2
- def self.up
3
- create_table :flistzs do |t|
4
- t.column :dir_id, :integer, :null => false
5
- t.column :level, :integer, :null => false
6
- t.column :kind, :string, :null => false
7
- t.column :repo, :string, :null => false
8
- t.column :path, :string, :null => false
9
- t.column :project, :string, :null => false
10
- t.column :desc, :string, :null => false
11
- t.column :comment, :string, :null => false
12
- t.column :atime, :datetime, :null => false
13
- t.column :ctime, :datetime, :null => false
14
- t.column :mtime, :datetime, :null => false
15
- t.column :start_datetime, :datetime, :null => false
16
- end
17
- end
18
-
19
- def self.down
20
- drop_table :flistzs
21
- end
22
- end
@@ -1,12 +0,0 @@
1
- class CreateInvalidflistz < ActiveRecord::Migration[6.0]
2
- def self.up
3
- create_table :invalidflistzs do |t|
4
- t.column :org_id, :int, :null => false
5
- t.column :count_id, :int, :null => true
6
- end
7
- end
8
-
9
- def self.down
10
- drop_table :invalidflistzs
11
- end
12
- end
@@ -1,15 +0,0 @@
1
- class CreateCurrentflistz < ActiveRecord::Migration[6.0]
2
- def self.up
3
- execute <<-SQL
4
- CREATE VIEW currentflistzs AS SELECT id as org_id,
5
- dir_id , level , kind , repo , path , project , desc , comment , atime , ctime , mtime , start_datetime
6
- FROM flistzs where not exists (select * from invalidflistzs where invalidflistzs.org_id = flistzs.id )
7
- SQL
8
- end
9
-
10
- def self.down
11
- execute <<-SQL
12
- DROP VIEW currentflistzs
13
- SQL
14
- end
15
- end
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'forwardable'
4
- require 'csv'
5
-
6
- require 'arxutils_sqlite3'
7
- require 'flist/dbutil/dbmgr'
8
- require 'ykutils/debugutils'
9
-
10
- module Flist
11
- class Flist
12
- class Store
13
- extend Forwardable
14
-
15
- include Ykutils::DebugUtils
16
-
17
- # def_delegators( :@dbmgr, :dirz_add )
18
-
19
- def initialize(_kind, hash, _opts)
20
- # @dbmgr = Arxutils_Sqlite3::Store.init(kind , hs , opts ){ | register_time |
21
- # Dbutil::DbMgr.new( register_time )
22
- # }
23
- Dbutil::DbMgr.new(register_time)
24
-
25
- @csv_fname = hash['csv_fname']
26
- @csvin_fname = hash['csvin_fname']
27
-
28
- debug_utils_init
29
- d_puts("csv_fname=#{@csv_fname}")
30
-
31
- if @csv_fname
32
- @csv = CSV.open(@csv_fname, 'w',
33
- { encoding: 'UTF-8',
34
- headers: @headers_s,
35
- force_quotes: true,
36
- write_headers: true })
37
- end
38
-
39
- if @csvin_fname
40
- @csvin = CSV.open(@csvin_fname, 'r',
41
- { encoding: 'UTF-8',
42
- headers: @headers_s })
43
- end
44
-
45
- d_puts "default_external=#{Encoding.default_external}"
46
- Encoding.default_external = Encoding::UTF_8
47
- d_puts "default_external=#{Encoding.default_external}"
48
- d_puts "default_internal=#{Encoding.default_internal}"
49
- Encoding.default_internal = Encoding::UTF_8
50
- d_puts "default_internal=#{Encoding.default_internal}"
51
- end
52
-
53
- def finish
54
- @csv&.close
55
- @csv_in&.close
56
- end
57
-
58
- def post_process
59
- @dbmgr&.flistz_post_process(@dir_id)
60
- end
61
-
62
- def output(items, dir_id)
63
- d_puts 'In output'
64
-
65
- items.each do |_k, v|
66
- d_puts "v.path.encoding=#{v.path.encoding}"
67
-
68
- @csv << [v.level, v.kind, v.repo, v.path, v.project, v.comment, v.atime, v.ctime, v.mtime] if @csv
69
- @dbmgr&.flistz_add(dir_id, v.level, v.kind, v.repo, v.path, v.project, '', v.comment, v.atime, v.ctime,
70
- v.mtime)
71
- end
72
- end
73
- end
74
- end
75
- end