summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorb5f0d6c3 <[email protected]>2021-10-20 01:06:31 +0800
committerb5f0d6c3 <[email protected]>2021-10-20 01:06:31 +0800
commite4047411ac3bb53c1026cff7ae2667f514eaaccf (patch)
tree25b6aa013ef30e7eb9e0ffcc7e3a49d8fb7f064d
parentade1863046f4f5902b1e46e3d95bcd268fe899e3 (diff)
add log file writer
-rw-r--r--README.md11
-rw-r--r--mkvtool/main.go16
2 files changed, 25 insertions, 2 deletions
diff --git a/README.md b/README.md
index 77b23aa..b66a2be 100644
--- a/README.md
+++ b/README.md
@@ -19,6 +19,7 @@ ASS字幕字体子集化 MKV批量提取/生成
apt install mkvtoolnix #Debian/Ubuntu
apk add mkvtoolnix #Alpine
```
+
#### 关于Windows用户
- 从 [这里](https://www.python.org/downloads) 下载并安装Python
@@ -38,6 +39,15 @@ ASS字幕字体子集化 MKV批量提取/生成
## mkvtool 功能及使用示例
+- 标准工作流
+ ```shell
+ mkvtool -s bangumi
+ #从${bangumi}文件夹抽取所有mkv文件的字幕和字体,
+ #遇到ass字幕就自动进行子集化,
+ #输出替换字幕和字体后的新mkv文件.
+ #-data参数默认值为"${workdir}/data",指定提取mkv的输出文件夹.
+ #-dist参数默认值为"${workdir}/dist",指定重组后mkv的输出文件夹.
+ ```
- 从单个(或文件夹的)mkv文件里抽取字幕和字体*并创建子集化后的版本(可选)*
```shell
mkvtool -d -f file.mkv #单个文件
@@ -129,6 +139,7 @@ ASS字幕字体子集化 MKV批量提取/生成
### 一些碎碎念
+- "-log"参数:输出终端输出到指定文件,空为不输出,默认为空.
- "-m","-c"模式下的"-sl","-st"参数:
```
-sl:字幕语言.格式为语言缩写如"chi","jpn","eng"等,默认值为"chi".
diff --git a/mkvtool/main.go b/mkvtool/main.go
index ce55269..285b0f1 100644
--- a/mkvtool/main.go
+++ b/mkvtool/main.go
@@ -4,6 +4,7 @@ import (
"flag"
"fmt"
"github.com/KurenaiRyu/MkvAutoSubset/mkvlib"
+ "io"
"log"
"os"
"path"
@@ -12,7 +13,7 @@ import (
)
const appName = "MKV Tool"
-const appVer = "v3.1.4"
+const appVer = "v3.1.5"
const tTitle = appName + " " + appVer
var processer = mkvlib.GetInstance()
@@ -46,6 +47,7 @@ func main() {
ans := false
sl, st := "", ""
af, ao := "", ""
+ flog := ""
asses := new(arrayArg)
flag.StringVar(&s, "s", "", "Source folder.")
flag.StringVar(&f, "f", "", "MKV file. (join single mode)")
@@ -63,13 +65,23 @@ func main() {
flag.BoolVar(&ans, "ans", false, `ASS output not to the new "subsetted" folder. (ass mode only)`)
flag.StringVar(&data, "data", "data", "Subtitles & Fonts folder (dump & make mode only)")
flag.StringVar(&dist, "dist", "dist", "Results output folder (make mode only)")
+ flag.StringVar(&flog, "log", "", "Log file path")
flag.BoolVar(&v, "v", false, "Show app info.")
flag.Parse()
+ if flog != "" {
+ lf, err := os.OpenFile(flog, os.O_CREATE|os.O_RDWR, os.ModePerm)
+ if err != nil {
+ log.Printf(`Failed to create log file: "%s"`, flog)
+ }
+ mw := io.MultiWriter(os.Stdout, lf)
+ log.SetOutput(mw)
+ }
+
ec := 0
if v {
- fmt.Println(appFN + " (powered by " + mkvlib.LibFName + ")")
+ log.Printf("%s (powered by %s)", appFN, mkvlib.LibFName)
return
}