mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-02-20 23:47:21 -05:00
Feat: vformat supports multi-core processing (#996)
This commit is contained in:
parent
a771e3401a
commit
218f27c9c1
@ -77,31 +77,31 @@ func GetGOBIN() string {
|
|||||||
return GOBIN
|
return GOBIN
|
||||||
}
|
}
|
||||||
|
|
||||||
func Run(binary string, args []string) (string, error) {
|
func Run(binary string, args []string) ([]byte, error) {
|
||||||
cmd := exec.Command(binary, args...)
|
cmd := exec.Command(binary, args...)
|
||||||
cmd.Env = append(cmd.Env, os.Environ()...)
|
cmd.Env = append(cmd.Env, os.Environ()...)
|
||||||
output, cmdErr := cmd.CombinedOutput()
|
output, cmdErr := cmd.CombinedOutput()
|
||||||
if cmdErr != nil {
|
if cmdErr != nil {
|
||||||
return "", cmdErr
|
return nil, cmdErr
|
||||||
}
|
}
|
||||||
if len(output) > 0 {
|
return output, nil
|
||||||
return string(output), nil
|
|
||||||
}
|
|
||||||
return "", nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func RunMany(binary string, args, files []string) {
|
func RunMany(binary string, args, files []string) {
|
||||||
fmt.Println("Processing...")
|
fmt.Println("Processing...")
|
||||||
|
|
||||||
|
maxTasks := make(chan struct{}, runtime.NumCPU())
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
args := append(args, file)
|
maxTasks <- struct{}{}
|
||||||
output, err := Run(binary, args)
|
go func(file string) {
|
||||||
|
output, err := Run(binary, append(args, file))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
continue
|
} else if len(output) > 0 {
|
||||||
}
|
fmt.Println(string(output))
|
||||||
if len(output) > 0 {
|
|
||||||
fmt.Println(output)
|
|
||||||
}
|
}
|
||||||
|
<-maxTasks
|
||||||
|
}(file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ func main() {
|
|||||||
goimports = goimportsPath
|
goimports = goimportsPath
|
||||||
}
|
}
|
||||||
|
|
||||||
rawFilesSlice := make([]string, 0)
|
rawFilesSlice := make([]string, 0, 1000)
|
||||||
walkErr := filepath.Walk("./", func(path string, info os.FileInfo, err error) error {
|
walkErr := filepath.Walk("./", func(path string, info os.FileInfo, err error) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user