def merge(directory: str, debug: bool): """ 引数に指定したディレクトリ内のファイルをマージし、日付でソートします。 \b マージしたファイルは、[ディレクトリ名 + .merged.log]というファイル名で出力されます。 utf-8でデコード出来ない行は上手くマージ出来ません。 """ # for debug if debug: log.set_level(log.Level.DEBUG) try: ret = mrg.Merge().exec(directory) except IOError as e: ret = False click.echo(e.args) except Exception as e: ret = False click.echo(e.args) # finished if ret: click.echo("正常に終了しました。") else: click.echo("失敗しました。")
def test_exec(self): path = "tests/logs" out_path = path + merge.Merge.FILE_SUFFIX ret = merge.Merge().exec(path) self.assertTrue(ret) self.assertTrue(os.path.exists(out_path)) os.remove(out_path)
def get(ctx: click.core.Context, filename: str, dir: str, to_usb: bool, convert: bool, merge: bool, debug: bool): """ 引数に指定したファイルを取得します。省略した場合は新たに取得します。 """ # for debug if debug: log.set_level(log.Level.DEBUG) p = __get_params(ctx) if to_usb: if convert or merge: log.w("USB出力時は--convert, --mergeオプションは無視されます.") p.remote_dist_dir = os.path.join(p.usb_dir, dir) else: p.local_dist_dir = os.path.join(os.getcwd(), dir) # execute command files = None ret = True try: if filename is None: files = remote.RemoteLogger(p).get_log(to_usb) else: files = remote.RemoteLogger(p).move_log(filename, to_usb) if convert and not to_usb and files is not None: cp = conv.ConvertParams() cp.script_path = p.convert_rule for f in files: cp.log_path = f ret, out_dir = conv.Converter(cp).exec() ret &= ret if merge and not (out_dir is None): ret &= mrg.Merge().exec(os.path.join(out_dir, p.merge_dir)) except IOError as e: ret = False click.echo(e.args) except Exception as e: ret = False click.echo(e.args) # finished if not files is None and ret: click.echo("正常に終了しました。") else: click.echo("失敗しました。")
def convert(ctx: click.core.Context, tar_file: str, script_path: str, file: str, merge: bool, debug: bool): """ 指定されたtarファイルを展開し、変換ルールに従って変換します。 """ if debug: log.set_level(log.Level.DEBUG) if not script_path is None: s = script_path else: conf = __get_params(ctx) if (conf.convert_rule is not None) and (not os.path.exists(conf.convert_rule)): click.echo("convert_rule \"%s\" が存在しません。" % conf.convert_rule) ctx.exit(2) else: s = conf.convert_rule p = conv.ConvertParams() p.script_path = s p.log_path = tar_file p.file = file ret = None try: ret, out_dir = conv.Converter(p).exec() if merge and not (out_dir is None): ret = mrg.Merge().exec(os.path.join(out_dir, conf.merge_dir)) except IOError as e: click.echo(e.args) except Exception as e: click.echo(e.args) # finished if ret: click.echo("正常に終了しました。") else: click.echo("失敗しました。")
def test_exec__dir_not_exists(self): path = "tests/not_exists_dir" log.set_level(log.Level.DEBUG) ret = merge.Merge().exec(path) self.assertFalse(ret)