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正式发布,免费更新,立即去更新看看效果. 不过升级后安装命 ...
随机推荐
- DetailView内匿名函数不可用
DetailView yii\widgets\DetailView 小部件显示的是单一 yii\widgets\DetailView::$model 数据的详情. 它非常适合用常规格式显示一个模型(例 ...
- Nginx高级玩法
1. Nginx获取自定义消息头 .nginx是支持读取非nginx标准的用户自定义header的,但是需要在http或者server下开启header的下划线支持: underscores_in_h ...
- 【mlflow】mlflow打包、启动、换用mysql backend、mysql配置
mlflow是一个自动化机器学习平台,支持python2也支持python3 mlflow9.0添加了数据库作为tracking data的存储: https://github.com/mlflow/ ...
- Hadoop集群完全分布式坏境搭建
前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...
- Spark ListenerBus 和 MetricsSystem 体系分析
转载自:https://yq.aliyun.com/articles/60196 摘要: Spark 事件体系的中枢是ListenerBus,由该类接受Event并且分发给各个Listener.Met ...
- centos7上安装php5.6
配置yum源 追加CentOS 6.5的epel及remi源. # rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel- ...
- 零碎收集cocos知识
Configuration类 返回环境变量 local function menuCallback(tag, pSender) printInfo("selected item tag:%d ...
- java线程初写,陆续更新中。。
(1)什么是线程?线程,是程序执行流的最小单元.线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享 ...
- 千亿级SaaS市场:企业级服务的必争之地
2015年企业级服务融资案例数量飙升,大额融资频现.不少企业纷纷涉足企业级服务市场,其中,以IM为主打的阿里钉钉,以企业CRM为主的纷享逍客高调进入人们的视野,以产品管理为核心.集成多种工具服务的iC ...
- 牛客国庆集训派对Day3 Solution
A Knight 留坑. B Tree 思路:两次树形DP,但是要考虑0没有逆元 可以用前缀后缀做 #include <bits/stdc++.h> using namespa ...