golang 을 사용 하여 git 대량 다운로드

1592 단어 golang
더 읽 기
package main

import (
	"os"
	"bufio"
	"os/exec"
	"fmt"
	"io"
	"sync"
	"bytes"
)

func main() {

	if len(os.Args) != 2 {

		panic("     ")
		return

	}

	inFilePath := os.Args[1];
	inFile, err := os.Open(inFilePath)

	if err != nil {
		panic(err)
		return
	}

	defer inFile.Close()

	reader := bufio.NewReader(inFile)
	waiter := &sync.WaitGroup{}
	for {

		line, _, err := reader.ReadLine();
		if err != nil {

			if err != io.EOF {
				panic(err)

			}

			break
		}
		fmt.Println(string(line))
		waiter.Add(1)
		go worker(string(line), waiter)

	}

	waiter.Wait()

	fmt.Println("============        !==============")

}

func worker(url string, waiter *sync.WaitGroup) {

	command := exec.Command("git", "clone", string(url))
	fmt.Println(command.Args)

	var bys bytes.Buffer
	command.Stdout = &bys

	fmt.Printf("=====>    :%s<========
", url) err := command.Start() if err != nil { panic(err) } command.Wait() fmt.Println(bys.String()) waiter.Done() fmt.Printf("=====> :%s<========
", url) }

좋은 웹페이지 즐겨찾기