go_install_x_from_github.sh 从 github 安装 go x tools
bash go_install_x_from_github.sh
#!/bin/bash set +e # set -x echo 'GO Utilities: Install golang.org/x from github.com mirrors' echo '2019-02-01' function echo { command '\033[0m' } function warn { command '\033[0m' } function error { command '\033[0m' } function success { command '\033[0m' } #declare -a TOOLS=(tools net sys crypto text benchmarks image lint sync review perf scratch exp) declare -a TOOLS=(tools net sys crypto text benchmarks image lint sync) TMPPATH=$(mktemp -d) GITHUB_PREFIX=https://github.com/golang PARAM_DEPTH1='' PARAM_DISABLE_PULL= ]] do case "$1" in --help|-h) cat <<-EOF Usage: bash ${##*/} [Parameters] Parameters: --depth1|-d: git clone --depth xxx --disable-pull|-f: Disable git pull --help|-h: show help EOF exit ;; --depth1|-d) PARAM_DEPTH1=' --depth 1 ' warn 'Enable depth 1 when git clone.' ;; --disable-pull|-f) PARAM_DISABLE_PULL= warn "Disable git pull." ;; esac shift done if [[ ! -e $GOPATH ]]; then error '$GOPATH is not found!' exit fi if [[ ! -e $GOPATH/src/golang.org/x ]]; then echo "Creating path $GOPATH/src/golang.org/x" mkdir -p $GOPATH/src/golang.org/x fi for a in ${TOOLS[@]}; do ]]; then if [[ -e $GOPATH/src/golang.org/x/$a/.git ]]; then cd $GOPATH/src/golang.org/x/$a git remote -v | grep "$GITHUB_PREFIX" > /dev/null ]]; then echo "Pulling $a ..." git pull --no-ff ]]; then echo "Installing $a ..." go install golang.org/x/$a/... [[ $? = ]] && success 'success' || warn "Install $a failed!" else warn "Pull $a failed!" fi continue fi fi fi if [[ ! -e $TMPPATH ]]; then echo "Creating temp path $TMPPATH ..." mkdir -p $TMPPATH fi echo "CD $TMPPATH" cd $TMPPATH echo "Cloning $a ..." git clone $PARAM_DEPTH1 https://github.com/golang/${a}.git ]]; then echo "Moving $a to $GOPATH/src/golang.org/x/$a" rm -rf $GOPATH/src/golang.org/x/$a mv $a $GOPATH/src/golang.org/x/ ]]; then echo "Installing $a ..." go install golang.org/x/$a/... [[ $? = ]] && success 'success' || warn "Install $a failed!" else warn "Move $a failed!" fi else warn "Clone $a failed!" fi done echo "Removing temp path $TMPPATH ..." rm -rf $TMPPATH echo 'Done'
go_install_x_from_github.sh 从 github 安装 go x tools的更多相关文章
- Linux下安装Phalcon系统环境安装Phalcon 及 安装Phalcon Developer Tools
一.安装Phalcon Phalcon 需要用的的PHP扩展函数有如下: curl gettext gd2 (to use the Phalcon\Image\Adapter\Gd class) li ...
- VS2015安装EF Power Tools
前言 最近在研究EF觉得EF Power Tools比较强大,可以利用其特性来进行Code First模型验证等等,本以为在VS2015扩展和更新中能找到EF Power Tools,结果未找到,还得 ...
- GitHub安装配置
GitHub安装配置1.安装Git-1.9.5-preview20141217 2.配置config文件Windows(在命令行下)cd /d %userprofile%if not exist &q ...
- 安装虚拟机VMware tools
不懂得安装虚拟机VMware tools的想必都是刚在虚拟机上玩系统初学者,无疑我们对虚拟机的了解并不深,这使得本来很容易安装的VMware tools在我们安装时变得复杂而又难以琢磨,到头一直的付出 ...
- 【转】VMware 11安装Mac OS X 10.10 及安装Mac Vmware Tools.
原文网址:http://www.cnblogs.com/Anand/p/4483727.html 先上一张效果图兴奋一下,博主穷屌丝一个,只能通过虚拟黑苹果体验下高富帅的生活,感觉超爽的,废话不多说的 ...
- VMware 11安装Mac OS X 10.10 及安装Mac Vmware Tools(超详细),以及动态调整虚拟机硬盘大小
先上一张效果图兴奋一下,博主穷屌丝一个,只能通过虚拟黑苹果体验下高富帅的生活,感觉超爽的,废话不多说的,直接上图了! 目录: 1.安装所需软件下载: 2.Mac OS X10.10 安装基本步骤: 3 ...
- 关于安装了VMware tools后仍然不支持拖拽文件的问题
我在学校机房里面的redhat4上面安装了VMware tools之后能正常支持拖拽,但是我自己电脑上的却不支持,折腾了好久,网上找了很久也还是没有解决,不过发现了一些问题,总结如下:(当然我总结的这 ...
- bin sh git@github.com no such file or directory
window下使用git: 输入命令:git clone git @github.com:Alan0521/dotvim.git 出现/bin/sh:git@github.com no such fi ...
- OS X 10.9 Mavericks下如何安装Command Line Tools(命令行工具)
OS X 10.9 Mavericks下如何安装Command Line Tools(命令行工具) 今天OS X 10.9 Mavericks正式发布,免费更新,立即去更新看看效果. 不过升级后安装命 ...
随机推荐
- 基于linux-2.6.35的class_create(),device_create解析
基于linux-2.6.35的class_create(),device_create解析 作者:苗老师,华清远见嵌入式学院讲师. 从linux内核2.6的某个版本之后,devfs不复存在,udev成 ...
- 第一课:初识Hadoop
Hadoop核心组件之分布式文件系统HDFS: 特点:扩充性,容错性,海量数据存储. 在HDFS中每次上传文件,都会将文件切分成指定大小的数据块(默认128m)并以多副本的存储在多个机器上. 数据切分 ...
- centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln 内部命令和外部命令 第五节课
centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln ...
- go-002-语言结构
Go 语言的基础组成有以下几个部分: 包声明package,必须在源文件中非注释的第一行指明这个文件属于哪个包, 引入包import,在开头部位使用 import 导入包,单个包 import “fm ...
- java反射获得泛型参数getGenericSuperclass():获取到父类泛型的类型
public class Person<T> { } import java.lang.reflect.ParameterizedType; import java.lang.reflec ...
- Java多态 父类引用指向子类对象
Java多态的三个必要条件: 1. 继承 2. 子类重写父类方法 3. 父类引用指向子类对象 然后看一个例子 输出结果为: 给出结论:Father c = new Child() 在c的 ...
- PHP实现返回JSON和XML的类分享
PHP实现返回JSON和XML的类分享 <?php class Reponse{ //private $result = array('code'=null,'messa ...
- org.apache.ibatis.exceptions.TooManyResultsException的异常排查过程
在查阅测试环境业务日志中的ERROR级别的日志时,发现了有一个Mybatis相关的异常错误org.apache.ibatis.exceptions.TooManyResultsException: E ...
- AVAudioFoundation(6):时间和媒体表示
本文转自:AVAudioFoundation(6):时间和媒体表示 | www.samirchen.com 本文主要内容来自 AVFoundation Programming Guide. 基于时间的 ...
- c++第二十五天
p129~p131: 1.赋值运算的左侧运算对象必须是一个可修改的左值. 2.赋值运算满足右结合律. 3.赋值运算的结果是它的左侧对象,并且是一个左值. 验证: #include<iostrea ...