`
qq466862016
  • 浏览: 127600 次
  • 来自: 杭州
社区版块
存档分类
最新评论

使用golang 进行git批量下载

阅读更多
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<========\n", url)

	err := command.Start()
	if err != nil {
		panic(err)
	}

	command.Wait()

	fmt.Println(bys.String())
	waiter.Done()

	fmt.Printf("=====>下载完毕:%s<========\n", url)

}

 

0
0
分享到:
评论

相关推荐

    Go-go-many-git:管理多个git存储库的工具

    针对这种情况,"Go-go-many-git"是一个专门设计用来帮助开发者更有效地管理多个Git存储库的工具,它基于Go语言进行开发,适用于命令行/控制台环境。 Go语言,又称Golang,是Google推出的一种静态类型的、编译型的、...

    最新vscode1.30 golang开发环境

    - **代码重构**:利用VSCode的查找和替换功能,对代码进行批量修改,简化大型项目的维护工作。 - **版本控制**:集成Git,进行代码提交、分支管理、合并等操作,确保代码的安全和版本管理。 - **集成终端**:在...

    Go-enmasse一个实用程序来创建GMail邮件草稿从golang编译模板和JSON数据

    从压缩包子文件的文件名称“pbeck-enmasse-9298a1c”来看,这可能是一个源代码仓库的特定版本,其中“pbeck”可能是开发者的用户名,“9298a1c”可能是Git仓库的一个commit哈希值,表示代码的某个具体版本。...

    d:Golang依赖管理bash脚本

    在Git版本控制系统中,通常使用“master”作为默认分支,所以这可能是一个Git仓库的克隆,其中包含了该bash脚本和其他相关文件。 在实际使用这个bash脚本时,开发者可能需要先将其克隆到本地,然后通过bash环境运行...

    tsbs_gitrepo.zip

    Go语言,也被称为Golang,是一种静态类型的、编译型的、并发型且具有垃圾回收功能的编程语言,特别适合于构建高性能的网络服务和并发处理。由于描述中提到这些依赖包已经包含在内,用户在解压后无需额外安装就能直接...

    基于golang go语言的语言文章系统、博客系统。.zip

    9. **版本控制**:项目使用Git进行版本控制,便于团队协作和代码回溯。GitHub或GitLab等平台可能是项目的托管地,提供代码仓库和问题追踪等功能。 综上所述,这个基于Go语言的文章系统和博客系统项目涵盖了Go语言的...

    lazytree:Golang库用于具有异构数据源的延迟加载分布式文件系统-Lazy source

    懒树 lazytree是一个golang库,它为具有异构数据源的延迟加载分布式文件系统奠定了基础。 大视野 ... 由于WAN延迟,它们主要针对批量下载进行了优化。 有趣的是,该概念如何在低延迟和高吞吐量的本地集群

    csv2vcf:Golang工具将一些csv文件转换为vcf文件

    用户可以通过克隆或下载这个仓库,然后使用Go的构建工具进行编译和安装,以便在本地运行`csv2vcf`。 总的来说,`csv2vcf`是Golang生态系统中的一个实用工具,它简化了CSV到VCF的转换过程,尤其适用于需要处理大量...

    导出word文档源码和模板

    下面将详细介绍如何使用FreeMarker进行Word模板导出以及相关知识点。 FreeMarker是一个基于Java的模板引擎,常用于生成动态Web内容。它与Word的结合,主要体现在通过FreeMarker模板语言(FTL)来填充数据,生成Word...

    gitutil:Git实用程序

    在本文中,我们将深入探讨Git的基础知识、Gitutil的用途以及如何利用Go语言进行Git操作。 首先,Git是分布式版本控制系统,由Linus Torvalds于2005年创建,用于管理Linux内核开发。Git的核心特性包括版本控制、分支...

    haoma:手机固话电话号码标记批量查询:telephone_receiver::pushpin:

    v*-darwin-amd64.tar.gz”下载后解压后运行软件浏览器打开 即可使用从源码安装假设您本地已经具备nodejs、golang开发环境# 获取源码git clone https://github.com/wwek/haoma.gitcd haoma# 编译前端cd frontendnpm ...

    xmly-downloader-qt5:喜马拉雅FM专辑下载器。支持VIP与推荐专辑。使用Go + Qt5编写(非Qt绑定)

    本项目的目的在于学习Go + Qt在跨平台的GUI应用,如需进行其他用途使用,请遵照照准协议Fork,使用本软件所造成的一切后果与本人无关。 核心/ API(Golang): : 屏幕截图 展开查看 下载 自动同步最新生成成果到...

    starter-kit:启动Golang服务器样板

    从字面上看,这是代码,旨在使您批量复制或粘贴并部分粘贴到您自己的存储库中,以便尽快进行软件开发。 HTTP 快速开始 复制HTTP服务器代码的说明: 克隆入门工具包存储库: git clone ...

    Go-百度网盘工具箱-Go语言编写

    综上所述,这个基于Go语言的百度网盘工具箱是一个高效、全面的下载管理工具,它具备断点续传和高并发下载能力,适用于用户批量处理和下载百度网盘中的文件和目录。通过使用Go语言,它能够提供稳定且快速的服务,同时...

    开源项目-angdev-chocolat.zip

    7. **版本控制与协作**:项目名称中的“chocolat-master”暗示了该项目使用Git进行版本控制,"master"分支通常代表项目的主分支。开源项目通常使用GitHub或GitLab等平台进行协作和代码托管,这意味着你可以找到源...

    Go-Postman-用于批理发送电子邮件的命令行实用程序

    8. **版本控制**:由于项目文件(如配置文件、模板)通常会存储在版本控制系统(如 Git)中,了解如何使用版本控制工具协同工作也很重要。 总的来说,Go-Postman 是一个实用的工具,尤其对于那些需要批量发送电子...

    Go-一个采用Go开发用于查询汇率的命令行工具

    7. **版本管理**:文件名中的"c68a6e8"看起来像是Git的哈希值,这表明项目使用Git进行版本控制,确保代码的可追踪性和团队协作。 开发这样一个工具可以提升对Go语言的深入理解,包括命令行接口的设计、网络编程、...

    nsq客户端的php扩展

    为了提升效率和扩展性,开发者经常需要与各种消息队列系统进行集成,其中NSQ(由Golang编写的高性能、分布式消息队列)是一个常见选择。"nsq客户端的php扩展"就是为了让PHP应用程序能够方便地与NSQ通信而开发的软件...

    孟加拉国制造:精选孟加拉国制造的出色框架,库和软件的清单

    theme-为使用git和unicode兼容字体和终端的用户优化的ZSH主题。 C 通用的shell脚本编译器。 Shc接受在命令行上指定的脚本,并生成C源代码。 C ++ -Unix批量重命名实用程序。 一种符合Unicode的OpenSource,...

    开源项目-go-vgo-robotgo.zip

    【标题】"开源项目-go-vgo-robotgo.zip"揭示了一个使用Go语言开发的开源项目,名为RobotGo,它在v0.49.0版本中进行了更新。这个项目主要聚焦于提供桌面自动化功能,旨在帮助用户实现对操作系统桌面环境的各种自动化...

Global site tag (gtag.js) - Google Analytics