etool/write.go   A
last analyzed

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 7
eloc 22
dl 0
loc 38
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A etool.Write 0 7 2
A etool.packWriteArgs 0 18 5
1
package etool
2
3
import (
4
	"fmt"
5
	"github.com/vvval/go-metadata-scanner/config"
6
	"github.com/vvval/go-metadata-scanner/util/log"
7
	"github.com/vvval/go-metadata-scanner/vars/metadata"
8
)
9
10
const overwriteFlag string = "-overwrite_original"
11
12
func Write(name string, tags metadata.Tags, useSeparator, saveOriginals bool) ([]byte, error) {
13
	res, err := run(config.App.ToolPath(), packWriteArgs(name, tags, useSeparator, saveOriginals)...)
14
	if err == nil {
15
		log.Log("write into file", name)
16
	}
17
18
	return res, err
19
}
20
21
func packWriteArgs(name string, tags metadata.Tags, useSeparator bool, saveOriginals bool) []string {
22
	var args []string
23
24
	for tag, value := range tags {
25
		args = append(args, fmt.Sprintf("-%s=%v", tag, value))
26
	}
27
28
	if useSeparator {
29
		args = append(args, "-sep", metadata.Separator())
30
	}
31
32
	if !saveOriginals {
33
		args = append(args, overwriteFlag)
34
	}
35
36
	args = append(args, name)
37
38
	return args
39
}
40