79 Commits
Author SHA1 Message Date
Junv 23d74d510f bump verson to 1.0.35 2016-03-07 11:37:04 +08:00
junv cd26aff6f9 try to fix git url issue 2016-03-06 21:48:19 +08:00
junv 498fbe8ad3 update git repo url 2016-03-06 21:41:18 +08:00
junv aa144d900a update source url 2016-03-06 21:30:35 +08:00
junv 2ad422375d Bump version to 1.0.30 2016-03-06 21:17:17 +08:00
junv e383017680 update readme 2016-03-06 20:58:55 +08:00
junv f987a3628c replase googlecode with github 2016-03-06 20:53:14 +08:00
junv a19aa82656 update source repo 2016-01-13 15:36:33 +08:00
Junv 310a36ced1 add github repo url 2016-01-12 00:15:31 +08:00
Joshua Bussdieker 25ea8ae158 Add gvm use -h. Fixes #128 2015-12-17 12:39:08 -08:00
Joshua Bussdieker 20fe6c5214 Merge pull request #167 from bronzdoc/enhancement/install_success_message
Add success message after go installation
2015-12-17 12:26:48 -08:00
Joshua Bussdieker 680e356630 Merge pull request #138 from uhoh-itsmaciek/respond-to-requests-for-help
Respond to help command by showing usage info
2015-12-17 12:26:26 -08:00
Joshua Bussdieker f7916c90b4 Merge pull request #163 from nikolas/patch-1
Add --default option to documentation
2015-12-17 12:24:18 -08:00
Joshua Bussdieker 2feeac7454 Merge pull request #168 from todd/install_15x_note
Add Go 1.5 Compilation Notes
2015-10-24 14:37:19 -07:00
Todd Bealmear 725bc293b2 📝 Add Go 1.5 Compilation Notes [ci skip] 2015-10-24 14:21:57 -07:00
bronzdoc 98c36fedb9 Add success message after go installation 2015-10-14 20:48:50 -06:00
Nik Nyby f62c61ec5c Add --default option to documentation 2015-10-08 13:32:30 -04:00
Joshua Bussdieker 8b7e848371 Merge pull request #157 from ilons/master
Should add source_line properly for bashrc
2015-09-11 08:58:58 -07:00
Ilon Sjögren 604e702e2a Should add source_line properly for bashrc 2015-09-10 13:52:01 +02:00
Joshua Bussdieker 595852af11 Merge pull request #139 from nmabhinandan/master
Pre appended newline to source_line
2015-09-09 08:37:57 -07:00
Joshua Bussdieker e34bbfc017 Merge pull request #154 from kei-yamazaki/goroot_bootstrap
Fix compilation problem of go1.5
2015-09-09 08:35:57 -07:00
Kei YAMAZAKI 707e5de0ba Fix compilation problem of go1.5 2015-08-20 09:58:20 +09:00
Gregory G. Tseng ff81688ece Merge pull request #140 from david-poirier/master
changed gvm install to go1.4
2015-07-10 10:56:08 -07:00
David Poirier 5366dd903d changed gvm install to go1.4 2015-06-12 11:20:22 +10:00
Abhinandan d32b62bf31 Pre appended newline to source_line
Playing it safe
2015-05-28 13:51:43 +05:30
Maciek Sakrejda e66076be0d Respond to help command by showing usage info 2015-05-21 21:17:41 -07:00
Joshua Bussdieker bba42f81f9 Merge pull request #132 from nikolas/fix-typos
Fix typos: specifiy -> specify
2015-04-16 16:00:57 -07:00
Joshua Bussdieker 7fd2678da2 Merge pull request #135 from tchoulihan/patch-1
Show the useful gvm listall command
2015-04-16 16:00:18 -07:00
Tyler Houlihan 9cf079ba24 Show the useful gvm listall command
It took me a while to find this, but the gvm listall command is probably its most useful feature, and its not even on the front page.
2015-04-14 23:04:53 -04:00
Nik Nyby 4231e20b6a Fix typos: specifiy -> specify 2015-04-08 23:13:13 -04:00
Gregory G. Tseng 670008ebb9 Merge pull request #116 from tianon/go1.4-cross
Fix "gvm cross" for Go 1.4
2015-02-03 21:12:42 -08:00
Tianon Gravi ece4351a6b Fix some whitespace inconsistencies in scripts/cross 2015-02-03 22:03:22 -07:00
Tianon Gravi d1db113a52 Fix "gvm cross" for Go 1.4
> go tool dist: opendir /home/user/.gvm/gos/go1.4/src/pkg/runtime: No such file or directory
> ERROR: Couldn't compile runtime library for darwin amd64
2015-02-03 22:03:22 -07:00
Gregory G. Tseng c6850e273a Merge pull request #122 from naoina/master
Change Go source repository to git
2015-02-03 18:00:22 -08:00
Naoya Inada ccbb978c9a Fix for installation of master 2015-02-04 10:44:32 +09:00
Naoya Inada e1ea0e745f Change Go source repository to git 2015-02-04 09:49:50 +09:00
Gregory G. Tseng 121663b898 Merge pull request #118 from runcom/curl_dependency_check
Add check for curl dependency
2015-02-03 10:51:55 -08:00
Antonio Murdaca f2a28de3cf Add check for curl dependency 2015-02-03 19:33:35 +01:00
Gregory G. Tseng b5144138b0 Merge pull request #119 from runcom/fix_download_older_go_version
Fix download for older go binary version
2015-02-03 10:31:36 -08:00
Antonio Murdaca 9bc84bc286 Fix download for older go binary version 2015-01-11 22:35:12 +01:00
Joshua B. Bussdieker e5a06b52c7 Bump version to 1.0.22 2014-08-04 08:37:08 -07:00
Joshua Bussdieker 51d149771f Merge pull request #94 from meatballhat/scenario-tests-on-travis
Trying to run both default and scenario tests on Travis
2014-08-04 08:35:47 -07:00
Joshua Bussdieker eb61d9dbd0 Merge pull request #96 from runcom/zsh_installer_compatibility
Edit gvm-installer to be compatible with zsh
2014-08-04 08:32:51 -07:00
Antonio Murdaca 7fc9e0ef22 Edit gvm-installer to be compatible with zsh 2014-08-03 22:53:03 +02:00
Dan Buch 03d7843f69 Trying to run both default and scenario tests on Travis
* Aborting rake tests if subshells fail plus attempting to make
gvm-installer less destructive for easing local verification of the
tests that run on Travis.
* Getting rubocop happy with the Rakefile, collapsing things a bit
2014-07-22 10:38:47 -04:00
Joshua Bussdieker ac17654314 Merge pull request #91 from kainosnoema/fix/download-url
Fix invalid download paths preventing install
2014-07-21 22:18:35 -07:00
Joshua B. Bussdieker dff56e69df Bump version to 1.0.21 2014-07-21 22:14:26 -07:00
Evan Owen fb0881a609 Fix indentation everywhere
Signed-off-by: Evan Owen <kainosnoema@gmail.com>
2014-07-21 22:14:04 -07:00
Joshua Bussdieker ae439a3560 Merge pull request #92 from tianon/arm
Update "gvm cross" to support ARM properly
2014-07-21 22:13:08 -07:00
Evan Owen f9b3d1699d Replace go.googlecode.com fallback with storage.googleapis.com
go.googlecode.com no longer works, storage.googleapis.com does.

Signed-off-by: Evan Owen <kainosnoema@gmail.com>
2014-07-21 22:12:07 -07:00
Evan Owen b3ac750c04 Remove extra 'go' from download URL path
GO_BINARY_FILE already contains the full "go1.3..." path.

Signed-off-by: Evan Owen <kainosnoema@gmail.com>
2014-07-21 22:12:07 -07:00
Joshua Bussdieker 112dfaac37 Merge pull request #88 from amitkgupta/master
gvm-check shows all missing requirements.
2014-07-21 22:08:07 -07:00
Joshua Bussdieker a71029eaa4 Merge pull request #89 from meatballhat/normalize-prefer-binary
Making all prefer-binary bits consistent
2014-07-21 22:07:26 -07:00
Tianon Gravi 78e2e80d40 Update "gvm cross" to support ARM properly 2014-07-21 10:29:38 -06:00
Dan Buch 9a9aab4b12 Correcting download URL construction
to not have a double `go`, e.g. when running one of the following:

    gvm install go1.3 --binary

or:

    gvm install go1.3 --prefer-binary
2014-07-21 11:27:12 -04:00
Dan Buch 38dfba78b8 Making all prefer-binary bits consistent 2014-07-21 10:37:42 -04:00
Amit Gupta 3ffc794bc5 gvm-check shows all missing requirements. 2014-07-20 23:52:59 -04:00
Joshua Bussdieker b914f5a6b3 Merge pull request #85 from jambli/master
Fix typos in pkgset-use
2014-07-12 12:20:15 -07:00
jambli 3d465f0ead Fix typos in pkgset-use 2014-07-12 11:22:01 -04:00
Joshua Bussdieker 4ce01e1e16 Merge pull request #81 from CoolOppo/patch-1
Merge the apt-get commands
2014-07-09 14:43:15 -07:00
Joshua Bussdieker a5ade13862 Merge pull request #84 from hoffoo/master
fix binary download path to golang.org/dl
2014-07-09 14:43:01 -07:00
Joshua Bussdieker e06e446acf Merge pull request #83 from meatballhat/support-prefer-binary
Adding support for --preferbinary
2014-07-09 14:41:34 -07:00
Marin 53fff83811 fall back to google code
if http://golang.org/dl (newer versions) fails, try to download from google code.
2014-07-08 20:03:34 -07:00
Marin fa0f1b4d57 fix binary download path to google code 2014-07-08 19:25:31 -07:00
Dan Buch 5ba804665d Renaming scenario to match its content 2014-06-25 10:42:43 -04:00
Dan Buch 6b75a19639 Adding support for --preferbinary
to attempt an install from binary, falling back to source install.
2014-06-25 10:27:19 -04:00
CoolOppo 739557089b Merge the apt-get commands 2014-06-14 03:50:56 -04:00
Joshua Bussdieker 99876c1786 Merge pull request #80 from michaelmaltese/79-fix_system_path
Fix PATH for system Go
2014-06-13 13:15:29 -07:00
Michael Maltese cf394bb42c Fix PATH for system Go
Fixes #79
2014-06-13 13:08:49 -07:00
Joshua B. Bussdieker 3ecd74b96e Older versions of go now require patches on newer systems 2014-06-12 15:11:10 -07:00
Joshua B. Bussdieker 35d369dfd3 Cleanup error output 2014-06-12 15:10:37 -07:00
Joshua B. Bussdieker f43320ec82 Fix issue with matcher 2014-06-12 14:47:47 -07:00
Joshua B. Bussdieker 1921cd7f0a Ignore local vagrant stuff 2014-06-12 14:46:32 -07:00
Joshua B. Bussdieker 97611a42eb Add some new tests 2014-06-12 14:45:56 -07:00
Joshua B. Bussdieker f392f564c6 Remove test code 2014-06-12 14:32:23 -07:00
Joshua B. Bussdieker eaf768b7d1 Make running tests easier 2014-06-12 14:31:13 -07:00
Joshua B. Bussdieker 22dc137459 Some vagrant stuff 2014-06-12 12:59:05 -07:00
Joshua Bussdieker c6527574be Merge pull request #78 from michaelmaltese/77-fix_mac_download_urls
Mac binary package URLs contain system version
2014-06-12 12:44:44 -07:00
Michael Maltese 8954a3cb39 Mac binary package URLs contain system version
Fixes #77
2014-06-12 12:42:52 -07:00
33 changed files with 314 additions and 149 deletions
+2
View File
@@ -7,3 +7,5 @@ environments/
tmp/ tmp/
*.log *.log
scripts/gvm scripts/gvm
Gemfile.lock
.vagrant/
+7 -2
View File
@@ -1,7 +1,12 @@
language: c language: c
os: [linux, osx] os: [linux, osx]
osx_image: mavericks osx_image: mavericks
env:
global:
- SRC_REPO=$TRAVIS_BUILD_DIR
- GVM_NO_GIT_BAK=1
- GVM_NO_UPDATE_PROFILE=1
before_install: before_install:
- "binscripts/gvm-installer $TRAVIS_COMMIT $TRAVIS_BUILD_DIR/tmp" - binscripts/gvm-installer $TRAVIS_COMMIT $TRAVIS_BUILD_DIR/tmp
install: gem install tf -v '>=0.4.1' install: gem install tf -v '>=0.4.1'
script: source $TRAVIS_BUILD_DIR/tmp/gvm/scripts/gvm; tf --text tests/* script: source $TRAVIS_BUILD_DIR/tmp/gvm/scripts/gvm; rake default scenario
+3
View File
@@ -0,0 +1,3 @@
source 'https://rubygems.org'
gem 'tf', '>=0.4.1'
+2
View File
@@ -25,6 +25,8 @@ To install:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
Or if you are using zsh just change `bash` with `zsh`
Installing Go Installing Go
============= =============
gvm install go1 gvm install go1
+27 -14
View File
@@ -1,11 +1,13 @@
# gvm # gvm-cn
[![Build Status](https://travis-ci.org/moovweb/gvm.svg?branch=master)](https://travis-ci.org/moovweb/gvm)
by Josh Bussdieker (jbuss, jaja, jbussdieker) by Josh Bussdieker (jbuss, jaja, jbussdieker)
GVM provides an interface to manage Go versions. GVM provides an interface to manage Go versions.
说明
========
该版本使用github的源代码,解决在中国国内不能使用gvm安装Go的问题
Features Features
======== ========
* Install/Uninstall Go versions with `gvm install [tag]` where tag is "60.3", "go1", "weekly.2011-11-08", or "tip" * Install/Uninstall Go versions with `gvm install [tag]` where tag is "60.3", "go1", "weekly.2011-11-08", or "tip"
@@ -26,12 +28,14 @@ Installing
To install: To install:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) bash < <(curl -s -S -L https://raw.githubusercontent.com/wahyd4/gvm/master/binscripts/gvm-installer)
Or if you are using zsh just change `bash` with `zsh`
Installing Go Installing Go
============= =============
gvm install go1 gvm install go1.4
gvm use go1 [--default] gvm use go1.4 [--default]
Once this is done Go will be in the path and ready to use. $GOROOT and $GOPATH are set automatically. Once this is done Go will be in the path and ready to use. $GOROOT and $GOPATH are set automatically.
Additional options can be specified when installing Go: Additional options can be specified when installing Go:
@@ -42,7 +46,19 @@ Additional options can be specified when installing Go:
-pb, --with-protobuf Install Go protocol buffers. -pb, --with-protobuf Install Go protocol buffers.
-b, --with-build-tools Install package build tools. -b, --with-build-tools Install package build tools.
-B, --binary Only install from binary. -B, --binary Only install from binary.
--prefer-binary Attempt a binary install, falling back to source.
-h, --help Display this message. -h, --help Display this message.
### A Note on Compiling Go 1.5
Go 1.5+ removed the C compilers from the toolchain and [replaced][compiler_note] them with one written in Go. Obviously, this creates a bootstrapping problem if you don't already have a working Go install. In order to compile Go 1.5+, make sure Go 1.4 is installed first.
```
gvm install go1.4
gvm use go1.4
gvm install go1.5
```
[compiler_note]: https://docs.google.com/document/d/1OaatvGhEAq7VseQ9kkavxKNAfepWy2yhPUBs96FGV28/edit
List Go Versions List Go Versions
================ ================
@@ -50,6 +66,10 @@ To list all installed Go versions (The current version is prefixed with "=>"):
gvm list gvm list
To list all Go versions available for download:
gvm listall
Uninstalling Uninstalling
============ ============
To completely remove gvm and all installed Go versions and packages: To completely remove gvm and all installed Go versions and packages:
@@ -68,14 +88,7 @@ Linux Requirements
Debian/Ubuntu Debian/Ubuntu
================== ==================
sudo apt-get install curl sudo apt-get install curl git mercurial make binutils bison gcc build-essential
sudo apt-get install git
sudo apt-get install mercurial
sudo apt-get install make
sudo apt-get install binutils
sudo apt-get install bison
sudo apt-get install gcc
sudo apt-get install build-essential
Redhat/Centos Redhat/Centos
================== ==================
+41
View File
@@ -0,0 +1,41 @@
require 'tmpdir'
def root_path
File.expand_path('../.', __FILE__)
end
def commit
@commit ||= (
ENV['TRAVIS_COMMIT'] || `git rev-parse --abbrev-ref HEAD`.chomp
)
end
task :default do
Dir.mktmpdir('gvm-test') do |tmpdir|
system(<<-EOSH) || fail
bash -c '
set -e
#{root_path}/binscripts/gvm-installer #{commit} #{tmpdir}
source #{tmpdir}/gvm/scripts/gvm
tf --text #{tmpdir}/gvm/tests/*.sh
'
EOSH
end
end
task :scenario do
Dir["#{root_path}/tests/scenario/*_comment_test.sh"].each do |test|
name = File.basename(test)
puts "Running scenario #{name}..."
Dir.mktmpdir('gvm-test') do |tmpdir|
system(<<-EOSH) || fail
bash -c '
set -e
#{root_path}/binscripts/gvm-installer #{commit} #{tmpdir}
source #{tmpdir}/gvm/scripts/gvm
tf --text #{tmpdir}/gvm/tests/scenario/#{name}
'
EOSH
end
end
end
+1 -1
View File
@@ -1 +1 @@
1.0.20 1.0.35
Vendored
+9
View File
@@ -0,0 +1,9 @@
Vagrant.configure("2") do |config|
config.vm.define "precise32" do |ubuntu|
ubuntu.vm.box = "hashicorp/precise32"
end
config.vm.define "precise64" do |ubuntu|
ubuntu.vm.box = "hashicorp/precise64"
end
end
+5 -4
View File
@@ -34,9 +34,7 @@ else
if [ -f "$GVM_ROOT/scripts/$command" ]; then if [ -f "$GVM_ROOT/scripts/$command" ]; then
shift shift
"$GVM_ROOT/scripts/$command" "$@" "$GVM_ROOT/scripts/$command" "$@"
elif [[ -n $command ]]; then elif [[ -z $command || $command = help ]]; then
display_fatal "Unrecognized command line argument: '$command'"
else
echo "Usage: gvm [command] echo "Usage: gvm [command]
Description: Description:
@@ -45,8 +43,9 @@ Description:
Commands: Commands:
version - print the gvm version number version - print the gvm version number
get - gets the latest code (for debugging) get - gets the latest code (for debugging)
use - select a go version to use use - select a go version to use (--default to set permanently)
diff - view changes to Go root diff - view changes to Go root
help - display this usage text
implode - completely remove gvm implode - completely remove gvm
install - install go versions install - install go versions
uninstall - uninstall go versions uninstall - uninstall go versions
@@ -58,5 +57,7 @@ Commands:
pkgset - manage go packages sets pkgset - manage go packages sets
pkgenv - edit the environment for a package set pkgenv - edit the environment for a package set
" "
else
display_fatal "Unrecognized command line argument: '$command'"
fi fi
fi fi
+16 -14
View File
@@ -11,15 +11,15 @@ display_error() {
update_profile() { update_profile() {
[ -f "$1" ] || return 1 [ -f "$1" ] || return 1
grep "$source_line" "$1" > /dev/null 2>&1 grep -F "$source_line" "$1" > /dev/null 2>&1
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "$source_line" >> "$1" echo -e "\n$source_line" >> "$1"
fi fi
} }
check_existing_go() { check_existing_go() {
if [ "$GOROOT" == "" ]; then if [ "$GOROOT" = "" ]; then
if which go > /dev/null; then if which go > /dev/null; then
GOROOT=$(go env | grep GOROOT | cut -d"=" -f2) GOROOT=$(go env | grep GOROOT | cut -d"=" -f2)
else else
@@ -38,14 +38,14 @@ export gvm_go_name; gvm_go_name="system"
export gvm_pkgset_name; gvm_pkgset_name="global" export gvm_pkgset_name; gvm_pkgset_name="global"
export GOROOT; GOROOT="$GOROOT" export GOROOT; GOROOT="$GOROOT"
export GOPATH; GOPATH="$GVM_DEST/$GVM_NAME/pkgsets/system/global" export GOPATH; GOPATH="$GVM_DEST/$GVM_NAME/pkgsets/system/global"
export PATH; PATH="$GVM_DEST/$GVM_NAME/pkgsets/system/global:$GOROOT/bin:$GVM_ROOT/bin:\$PATH" export PATH; PATH="$GVM_DEST/$GVM_NAME/pkgsets/system/global/bin:$GOROOT/bin:$GVM_ROOT/bin:\$PATH"
EOF EOF
} }
BRANCH=${1:-master} BRANCH=${1:-master}
GVM_DEST=${2:-$HOME} GVM_DEST=${2:-$HOME}
GVM_NAME="gvm" GVM_NAME="gvm"
SRC_REPO=${SRC_REPO:-https://github.com/moovweb/gvm.git} SRC_REPO=${SRC_REPO:-https://github.com/wahyd4/gvm.git}
[ "$GVM_DEST" = "$HOME" ] && GVM_NAME=".gvm" [ "$GVM_DEST" = "$HOME" ] && GVM_NAME=".gvm"
@@ -60,7 +60,7 @@ SRC_REPO=${SRC_REPO:-https://github.com/moovweb/gvm.git}
# Is gvm-installer being called from the origin repo? # Is gvm-installer being called from the origin repo?
# If so, skip the clone and source locally! # If so, skip the clone and source locally!
# This prevents, the CI to break on non-merge commits # This prevents CI from breaking on non-merge commits.
GIT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) GIT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
@@ -87,20 +87,22 @@ cd "$GVM_DEST/$GVM_NAME" && git checkout --quiet "$BRANCH" 2> /dev/null || displ
popd > /dev/null popd > /dev/null
mv "$GVM_DEST/$GVM_NAME/.git" "$GVM_DEST/$GVM_NAME/git.bak" [ -z "$GVM_NO_GIT_BAK" ] && mv "$GVM_DEST/$GVM_NAME/.git" "$GVM_DEST/$GVM_NAME/git.bak"
source_line="[[ -s \"${GVM_DEST}/$GVM_NAME/scripts/gvm\" ]] && source \"${GVM_DEST}/$GVM_NAME/scripts/gvm\"" source_line="[[ -s \"${GVM_DEST}/$GVM_NAME/scripts/gvm\" ]] && source \"${GVM_DEST}/$GVM_NAME/scripts/gvm\""
source_file="${GVM_DEST}/$GVM_NAME/scripts/gvm" source_file="${GVM_DEST}/$GVM_NAME/scripts/gvm"
if [ -n "$ZSH_NAME" ]; then if [ -z "$GVM_NO_UPDATE_PROFILE" ] ; then
update_profile "$HOME/.zshrc" if [ -n "$ZSH_NAME" ]; then
elif [ "$(uname)" == "Linux" ]; then update_profile "$HOME/.zshrc"
update_profile "$HOME/.bashrc" || update_profile "$HOME/.bash_profile" elif [ "$(uname)" == "Linux" ]; then
elif [ "$(uname)" == "Darwin" ]; then update_profile "$HOME/.bashrc" || update_profile "$HOME/.bash_profile"
update_profile "$HOME/.profile" || update_profile "$HOME/.bash_profile" elif [ "$(uname)" == "Darwin" ]; then
update_profile "$HOME/.profile" || update_profile "$HOME/.bash_profile"
fi
fi fi
if [ "$?" != "0" ]; then if [ -z "$GVM_NO_UPDATE_PROFILE" ] && [ "$?" != "0" ]; then
echo "Unable to locate profile settings file(Something like $HOME/.bashrc or $HOME/.bash_profile)" echo "Unable to locate profile settings file(Something like $HOME/.bashrc or $HOME/.bash_profile)"
echo echo
echo " You will have to manually add the following line:" echo " You will have to manually add the following line:"
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
/vagrant/extra/vagrant/install-deps.sh
/vagrant/extra/vagrant/install-local.sh
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
sudo apt-get -y install curl git mercurial bison make
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
rm -rf /home/vagrant/.gvm
cp -r /vagrant /home/vagrant/.gvm
echo "export GVM_ROOT=/vagrant
. \$GVM_ROOT/scripts/gvm-default" > /home/vagrant/.gvm/scripts/gvm
echo ". /home/vagrant/.gvm/scripts/gvm"
+2 -2
View File
@@ -2,10 +2,10 @@
. "$GVM_ROOT/scripts/functions" . "$GVM_ROOT/scripts/functions"
[[ $1 != "" ]] || [[ $1 != "" ]] ||
display_fatal "Please specifiy the alias name" display_fatal "Please specify the alias name"
[[ $2 != "" ]] || [[ $2 != "" ]] ||
display_fatal "Please specifiy the go version name" display_fatal "Please specify the go version name"
[[ ! -f "$GVM_ROOT/environments/$1" ]] || [[ ! -f "$GVM_ROOT/environments/$1" ]] ||
display_fatal "Alias already exists!" display_fatal "Alias already exists!"
+1 -1
View File
@@ -2,7 +2,7 @@
. "$GVM_ROOT/scripts/functions" . "$GVM_ROOT/scripts/functions"
[[ $1 != "" ]] || [[ $1 != "" ]] ||
display_fatal "Please specifiy the name" display_fatal "Please specify the name"
[[ -f $GVM_ROOT/environments/$1 ]] || [[ -f $GVM_ROOT/environments/$1 ]] ||
display_fatal "Alias doesn't exist!" display_fatal "Alias doesn't exist!"
+1 -1
View File
@@ -58,7 +58,7 @@ _gvm()
install) install)
[ ! -d $GVM_ROOT/archive/go ] && return 1 [ ! -d $GVM_ROOT/archive/go ] && return 1
[[ $COMP_CWORD > 2 ]] && return 1 [[ $COMP_CWORD > 2 ]] && return 1
local version="$(for x in `hg tags -R $GVM_ROOT/archive/go | awk '{print $1}' | $GREP_PATH -E "release|tip|go"`; do echo ${x} ; done )" local version="$(cd $GVM_ROOT/archive/go && for x in `git tag | $GREP_PATH -E "release|tip|go"`; do echo ${x} ; done )"
COMPREPLY=( $(compgen -W "${version}" -- ${cur}) ) COMPREPLY=( $(compgen -W "${version}" -- ${cur}) )
return 0 return 0
;; ;;
+15 -9
View File
@@ -4,7 +4,7 @@
display_usage() { display_usage() {
display_message "Usage: gvm cross [os] [arch]" display_message "Usage: gvm cross [os] [arch]"
display_message " os = linux/darwin/windows" display_message " os = linux/darwin/windows"
display_message " arch = amd64/386 (arm unsupported)" display_message " arch = amd64/386/arm"
} }
display_list() { display_list() {
@@ -25,13 +25,13 @@ which go &> /dev/null || display_fatal "Only available in versions after Go 1"
[ -z "$1" ] && display_list [ -z "$1" ] && display_list
if [ ! -f "$GOROOT/pkg/tool/cross" ]; then if [ ! -f "$GOROOT/pkg/tool/cross" ]; then
display_message "Installing x86 and x86-64 commands" display_message "Installing x86, x86-64, and ARM commands"
set -e set -e
for arch in 8 6; do for arch in 8 6 5; do
for cmd in a c g l; do for cmd in a c g l; do
go tool dist install -v cmd/$arch$cmd || go tool dist install -v cmd/$arch$cmd ||
display_fatal "Couldn't compile tool: $arch$cmd" display_fatal "Couldn't compile tool: $arch$cmd"
done done
done done
touch "$GOROOT/pkg/tool/cross" touch "$GOROOT/pkg/tool/cross"
fi fi
@@ -44,11 +44,17 @@ export GOARCH=$1
if [ ! -d "$GOROOT/pkg/${GOOS}_${GOARCH}" ]; then if [ ! -d "$GOROOT/pkg/${GOOS}_${GOARCH}" ]; then
display_message "Installing $GOOS $GOARCH runtime library" display_message "Installing $GOOS $GOARCH runtime library"
if [ "$GOOS" = "windows" ]; then if [ "$GOOS" = "windows" ]; then
export CGO_ENABLED=0 export CGO_ENABLED=0
fi fi
cd "$GOROOT/src" cd "$GOROOT/src"
go tool dist install -v pkg/runtime || if [ -d pkg/runtime ]; then
runtime='pkg/runtime'
else
# Go 1.4 moved pkg/ up a level
runtime='runtime'
fi
go tool dist install -v "$runtime" ||
display_fatal "Couldn't compile runtime library for $GOOS $GOARCH" display_fatal "Couldn't compile runtime library for $GOOS $GOARCH"
go install -v -a std || go install -v -a std ||
display_fatal "Install runtime library for $GOOS $GOARCH" display_fatal "Install runtime library for $GOOS $GOARCH"
+1 -1
View File
@@ -11,7 +11,7 @@ function gvm_pkgset_use() {
local LOCAL_TOP=$(find_local_pkgset) local LOCAL_TOP=$(find_local_pkgset)
unset -f find_local_pkgset unset -f find_local_pkgset
[[ -d $LOCAL_TOP ]] || [[ -d $LOCAL_TOP ]] ||
display_error "Caonnt find local pakcage set" || return 1 display_error "Cannot find local package set" || return 1
LOCAL_TOP=$LOCAL_TOP/.gvm_local LOCAL_TOP=$LOCAL_TOP/.gvm_local
fuzzy_match=$($LS_PATH "$LOCAL_TOP/environments" | $SORT_PATH | $GREP_PATH "$gvm_go_name@" | $GREP_PATH "local" | $HEAD_PATH -n 1) || fuzzy_match=$($LS_PATH "$LOCAL_TOP/environments" | $SORT_PATH | $GREP_PATH "$gvm_go_name@" | $GREP_PATH "local" | $HEAD_PATH -n 1) ||
+7 -2
View File
@@ -1,12 +1,17 @@
#!/usr/bin/env bash #!/usr/bin/env bash
function gvm_use() { function gvm_use() {
if [[ "$1" == "-h" ]]; then
display_message "Usage: gvm use VERSION [--default]"
return 1
fi
[[ "$1" != "" ]] || [[ "$1" != "" ]] ||
display_error "Please specifiy the version" || return 1 display_error "Please specify the version" || return 1
local VERSION=$1 local VERSION=$1
fuzzy_match=$($LS_PATH "$GVM_ROOT/gos" | $SORT_PATH | $GREP_PATH "$1" | $HEAD_PATH -n 1 | $GREP_PATH "$1") fuzzy_match=$($LS_PATH "$GVM_ROOT/gos" | $SORT_PATH | $GREP_PATH "$1" | $HEAD_PATH -n 1 | $GREP_PATH "$1")
if [[ "$?" != "0" ]]; then if [[ "$?" != "0" ]]; then
GO_CACHE_PATH=$GVM_ROOT/archive/go GO_CACHE_PATH=$GVM_ROOT/archive/go
version=$(hg tags -R "$GO_CACHE_PATH" | awk '{print $1}' | $SORT_PATH | $GREP_PATH "$VERSION" | $HEAD_PATH -n 1 | $GREP_PATH "$VERSION") version=$(cd "$GO_CACHE_PATH" && git tag -l "$VERSION")
if [[ "x$version" == "x" ]]; then if [[ "x$version" == "x" ]]; then
display_error "Version not found locally. Try 'gvm install $1'" || return 1 display_error "Version not found locally. Try 'gvm install $1'" || return 1
else else
+5
View File
@@ -9,3 +9,8 @@ GREP_PATH=$(unalias grep &> /dev/null; which grep) || display_error "$GREP_ERROR
SORT_PATH=$(unalias sort &> /dev/null; which sort) || display_error "$SORT_ERROR" || return 1 SORT_PATH=$(unalias sort &> /dev/null; which sort) || display_error "$SORT_ERROR" || return 1
HEAD_PATH=$(unalias head &> /dev/null; which head) || display_error "$HEAD_ERROR" || return 1 HEAD_PATH=$(unalias head &> /dev/null; which head) || display_error "$HEAD_ERROR" || return 1
GITHUB_REPO_URL=git@github.com:golang/go.git
repo_url() {
return GITHUB_REPO_URL
}
+34 -14
View File
@@ -1,37 +1,57 @@
#!/usr/bin/env bash #!/usr/bin/env bash
. "$GVM_ROOT/scripts/functions" . "$GVM_ROOT/scripts/functions"
# Check for hg error_message=""
which hg &> /dev/null ||
display_warning "Could not find mercurial # Check for git
which git &> /dev/null ||
error_message="${error_message}
Could not find git
linux: apt-get install mercurial linux: apt-get install mercurial
mac: brew install mercurial mac: brew install mercurial
" || exit 1 "
# Check for ar # Check for ar
which ar &> /dev/null || which ar &> /dev/null ||
display_warning "Could not find binutils error_message="${error_message}
Could not find binutils
linux: apt-get install binutils linux: apt-get install binutils
" || exit 1 "
# Check for bison # Check for bison
which bison &> /dev/null || which bison &> /dev/null ||
display_warning "Could not find bison error_message="${error_message}
Could not find bison
linux: apt-get install bison linux: apt-get install bison
" || exit 1 "
# Check for gcc # Check for gcc
which gcc &> /dev/null || which gcc &> /dev/null ||
display_warning "Could not find gcc error_message="${error_message}
Could not find gcc
linux: apt-get install gcc linux: apt-get install gcc
" || exit 1 "
# Check for make # Check for make
which make &> /dev/null || which make &> /dev/null ||
display_warning "Could not find make error_message="${error_message}
Could not find make
linux: apt-get install make linux: apt-get install make
" || exit 1 "
# Check for curl
which curl &> /dev/null ||
error_message="${error_message}
Could not find curl
# All good! linux: apt-get install curl
exit 0 mac: brew install curl
"
if [ -n "$error_message" ]; then
display_warning "$error_message"
exit 1
else
# All good!
exit 0
fi
+93 -58
View File
@@ -8,6 +8,7 @@ function show_usage() {
echo " -pb, --with-protobuf Install Go protocol buffers." echo " -pb, --with-protobuf Install Go protocol buffers."
echo " -b, --with-build-tools Install package build tools." echo " -b, --with-build-tools Install package build tools."
echo " -B, --binary Only install from binary." echo " -B, --binary Only install from binary."
echo " --prefer-binary Attempt a binary install, falling back to source."
echo " -h, --help Display this message." echo " -h, --help Display this message."
} }
@@ -20,7 +21,7 @@ read_command_line() {
show_usage show_usage
exit 1 exit 1
fi fi
GO_SOURCE_URL=https://go.googlecode.com/hg/ GO_SOURCE_URL=https://github.com/golang/go.git
for i in "$@"; do for i in "$@"; do
case $i in case $i in
-s=*|--source=*) -s=*|--source=*)
@@ -38,6 +39,9 @@ read_command_line() {
-B|--binary) -B|--binary)
INSTALL_SOURCE="binary" INSTALL_SOURCE="binary"
;; ;;
--prefer-binary)
INSTALL_SOURCE="prefer-binary"
;;
-h|--help) -h|--help)
show_usage show_usage
exit 0 exit 0
@@ -55,35 +59,36 @@ download_source() {
GO_CACHE_PATH=$GVM_ROOT/archive/go GO_CACHE_PATH=$GVM_ROOT/archive/go
[[ -d $GO_CACHE_PATH ]] && return [[ -d $GO_CACHE_PATH ]] && return
display_message "Downloading Go source..." display_message "Downloading Go source..."
hg clone "$GO_SOURCE_URL" "$GO_CACHE_PATH" >> "$GVM_ROOT/logs/go-download.log" 2>&1 || git clone "$GO_SOURCE_URL" "$GO_CACHE_PATH" >> "$GVM_ROOT/logs/go-download.log" 2>&1 ||
display_fatal "Couldn't download Go source\nCheck the logs $GVM_ROOT/logs/go-download.log" display_fatal "Couldn't download Go source. Check the logs $GVM_ROOT/logs/go-download.log"
} }
check_tag() { check_tag() {
version=$(hg tags -R "$GO_CACHE_PATH" | awk '{print $1}' | $SORT_PATH | $GREP_PATH "$VERSION" | $HEAD_PATH -n 1 | $GREP_PATH -w "$VERSION") version=$(cd "$GO_CACHE_PATH" && git show-ref --heads --tags | awk -F/ '{ print $NF }' | $SORT_PATH | $GREP_PATH "$VERSION" | $HEAD_PATH -n 1 | $GREP_PATH -w "$VERSION")
} }
update_source() { update_source() {
display_message "Updating Go source..." display_message "Updating Go source..."
hg pull -R "$GO_CACHE_PATH" >> "$GVM_ROOT/logs/go-download.log" 2>&1 || (cd "$GO_CACHE_PATH" && git pull >> "$GVM_ROOT/logs/go-download.log" 2>&1 ||
display_fatal "Couldn't get latest Go version info\nCheck the logs $GVM_ROOT/logs/go-download.log" display_fatal "Couldn't get latest Go version info. Check the logs $GVM_ROOT/logs/go-download.log")
} }
copy_source() { copy_source() {
hg clone -u "$version" "$GO_CACHE_PATH" "$GO_INSTALL_ROOT" >> "$GVM_ROOT/logs/go-$GO_NAME-install.log" 2>&1 || git clone -b "$version" "$GO_CACHE_PATH" "$GO_INSTALL_ROOT" >> "$GVM_ROOT/logs/go-$GO_NAME-install.log" 2>&1 ||
display_fatal "Couldn't copy source to target folder,\nCheck the logs $GVM_ROOT/logs/go-$GO_NAME-install.log" display_fatal "Couldn't copy source to target folder. Check the logs $GVM_ROOT/logs/go-$GO_NAME-install.log"
} }
compile_go() { compile_go() {
display_message " * Compiling..." display_message " * Compiling..."
[ -z "$GOROOT_BOOTSTRAP" ] && export GOROOT_BOOTSTRAP=$GOROOT
unset GOARCH && unset GOOS && unset GOPATH && unset GOBIN && unset GOROOT && unset GOARCH && unset GOOS && unset GOPATH && unset GOBIN && unset GOROOT &&
export GOBIN=$GO_INSTALL_ROOT/bin && export GOBIN=$GO_INSTALL_ROOT/bin &&
export PATH=$GOBIN:$PATH && export PATH=$GOBIN:$PATH &&
export GOROOT=$GO_INSTALL_ROOT && export GOROOT=$GO_INSTALL_ROOT &&
#cd $GO_INSTALL_ROOT/src && ./all.bash &> $GVM_ROOT/logs/go-$GO_NAME-compile.log || #cd $GO_INSTALL_ROOT/src && ./all.bash &> $GVM_ROOT/logs/go-$GO_NAME-compile.log ||
cd "$GO_INSTALL_ROOT/src" && ./make.bash &> "$GVM_ROOT/logs/go-$GO_NAME-compile.log" || cd "$GO_INSTALL_ROOT/src" && ./make.bash &> "$GVM_ROOT/logs/go-$GO_NAME-compile.log" ||
(rm -rf "$GO_INSTALL_ROOT" && display_fatal "Failed to compile\nCheck the logs at $GVM_ROOT/logs/go-$GO_NAME-compile.log") (rm -rf "$GO_INSTALL_ROOT" && display_fatal "Failed to compile. Check the logs at $GVM_ROOT/logs/go-$GO_NAME-compile.log")
} }
create_enviroment() { create_enviroment() {
@@ -109,12 +114,12 @@ create_enviroment() {
create_global_package_set() { create_global_package_set() {
# Create the global package set folder # Create the global package set folder
mkdir -p "$GVM_ROOT/pkgsets/$GO_NAME" >> "$GVM_ROOT/logs/go-$GO_NAME-install.log" 2>&1 || mkdir -p "$GVM_ROOT/pkgsets/$GO_NAME" >> "$GVM_ROOT/logs/go-$GO_NAME-install.log" 2>&1 ||
display_fatal "Couldn't create global package set folder\nCheck the logs at ${GVM_ROOT}/logs/go-${GO_NAME}-install.log" display_fatal "Couldn't create global package set folder. Check the logs at ${GVM_ROOT}/logs/go-${GO_NAME}-install.log"
GVM_OVERLAY_ROOT="${GVM_ROOT}/pkgsets/${GO_NAME}/global/overlay" GVM_OVERLAY_ROOT="${GVM_ROOT}/pkgsets/${GO_NAME}/global/overlay"
mkdir -p "${GVM_OVERLAY_ROOT}/lib/pkgconfig" >> "${GVM_ROOT}/logs/go-${GO_NAME}-install.log" 2>&1 || mkdir -p "${GVM_OVERLAY_ROOT}/lib/pkgconfig" >> "${GVM_ROOT}/logs/go-${GO_NAME}-install.log" 2>&1 ||
display_fatal "Couldn't create global overlay library directory\nCheck the logs at ${GVM_ROOT}/logs/go-${GO_NAME}-install.log" display_fatal "Couldn't create global overlay library directory. Check the logs at ${GVM_ROOT}/logs/go-${GO_NAME}-install.log"
mkdir -p "${GVM_OVERLAY_ROOT}/bin" >> "${GVM_ROOT}/logs/go-${GO_NAME}-install.log" 2>&1 || mkdir -p "${GVM_OVERLAY_ROOT}/bin" >> "${GVM_ROOT}/logs/go-${GO_NAME}-install.log" 2>&1 ||
display_fatal "Couldn't create global overlay bin directory\nCheck the logs at ${GVM_ROOT}/logs/go-${GO_NAME}-install.log" display_fatal "Couldn't create global overlay bin directory. Check the logs at ${GVM_ROOT}/logs/go-${GO_NAME}-install.log"
} }
install_go() { install_go() {
@@ -141,6 +146,8 @@ install_go() {
copy_source copy_source
compile_go compile_go
create_enviroment create_enviroment
display_message "$GO_NAME successfully installed!"
} }
download_binary() { download_binary() {
@@ -148,28 +155,46 @@ download_binary() {
if [ "$(uname)" == "Darwin" ]; then if [ "$(uname)" == "Darwin" ]; then
GVM_OS="darwin" GVM_OS="darwin"
osx_major_version="$(sw_vers -productVersion | cut -d "." -f 2)"
if [ "${osx_major_version}" -ge 8 ]; then
GVM_OS_VERSION="-osx10.8"
elif [ "${osx_major_version}" -ge 6 ]; then
GVM_OS_VERSION="-osx10.6"
else
display_error "Binary Go unavailable for this platform"
rm -rf $GO_INSTALL_ROOT
rm -f $GO_BINARY_PATH
exit 1
fi
else else
GVM_OS="linux" GVM_OS="linux"
fi fi
if [ "$(uname -m)" == "x86_64" ]; then if [ "$(uname -m)" == "x86_64" ]; then
GVM_ARCH="amd64" GVM_ARCH="amd64"
else else
GVM_ARCH="386" GVM_ARCH="386"
fi fi
GO_BINARY_FILE=${VERSION}.${GVM_OS}-${GVM_ARCH}.tar.gz GO_BINARY_FILE=${VERSION}.${GVM_OS}-${GVM_ARCH}${GVM_OS_VERSION}.tar.gz
GO_BINARY_URL="https://storage.googleapis.com/golang/${GO_BINARY_FILE}" GO_BINARY_URL="http://golang.org/dl/${GO_BINARY_FILE}"
GO_BINARY_PATH=${GVM_ROOT}/archive/${GO_BINARY_FILE} GO_BINARY_PATH=${GVM_ROOT}/archive/${GO_BINARY_FILE}
if [ ! -f $GO_BINARY_PATH ]; then if [ ! -f $GO_BINARY_PATH ]; then
curl -s -f -L $GO_BINARY_URL > ${GO_BINARY_PATH} curl -s -f -L $GO_BINARY_URL > ${GO_BINARY_PATH}
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
display_error "Failed to download binary go" display_error "Failed to download binary go from http://golang.org. Trying https://go.googlecode.com"
rm -rf $GO_INSTALL_ROOT GO_BINARY_URL="https://go.googlecode.com/files/${GO_BINARY_FILE}"
rm -f $GO_BINARY_PATH
exit 1 curl -s -f -L $GO_BINARY_URL > ${GO_BINARY_PATH}
if [[ $? -ne 0 ]]; then
display_error "Failed to download binary go"
rm -rf $GO_INSTALL_ROOT
rm -f $GO_BINARY_PATH
exit 1
fi
fi fi
fi fi
@@ -224,67 +249,77 @@ install_goprotobuf() {
if [[ "$GVM_GOINSTALL" == "goinstall" ]]; then if [[ "$GVM_GOINSTALL" == "goinstall" ]]; then
$GVM_GOINSTALL goprotobuf.googlecode.com/hg/proto > "$GVM_ROOT/logs/$GO_NAME-pb-compiler.log" 2>&1 $GVM_GOINSTALL goprotobuf.googlecode.com/hg/proto > "$GVM_ROOT/logs/$GO_NAME-pb-compiler.log" 2>&1
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
display_warning "Failed to install goprotobuf\nCheck the logs at $GVM_ROOT/logs/$GO_NAME-pb-compiler.log" display_warning "Failed to install goprotobuf. Check the logs at $GVM_ROOT/logs/$GO_NAME-pb-compiler.log"
return 1 return 1
fi fi
cd "$GVM_ROOT/gos/$GO_NAME/src/pkg/goprotobuf.googlecode.com/hg/compiler" cd "$GVM_ROOT/gos/$GO_NAME/src/pkg/goprotobuf.googlecode.com/hg/compiler"
make install >> "$GVM_ROOT/logs/$GO_NAME-pb-compiler.log" 2>&1 make install >> "$GVM_ROOT/logs/$GO_NAME-pb-compiler.log" 2>&1
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
display_warning "Failed to install goprotobuf compiler\nCheck the logs at $GVM_ROOT/logs/$GO_NAME-pb-compiler.log" display_warning "Failed to install goprotobuf compiler. Check the logs at $GVM_ROOT/logs/$GO_NAME-pb-compiler.log"
return 1 return 1
fi fi
else else
$GVM_GOINSTALL code.google.com/p/goprotobuf/proto > "$GVM_ROOT/logs/$GO_NAME-pb-compiler.log" 2>&1 $GVM_GOINSTALL github.com/golang/protobuf > "$GVM_ROOT/logs/$GO_NAME-pb-compiler.log" 2>&1
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
display_warning "Failed to install goprotobuf\nCheck the logs at $GVM_ROOT/logs/$GO_NAME-pb-compiler.log" display_warning "Failed to install goprotobuf. Check the logs at $GVM_ROOT/logs/$GO_NAME-pb-compiler.log"
return 1 return 1
fi fi
$GVM_GOINSTALL code.google.com/p/goprotobuf/protoc-gen-go > "$GVM_ROOT/logs/$GO_NAME-pb-compiler.log" 2>&1 $GVM_GOINSTALL github.com/golang/protobuf > "$GVM_ROOT/logs/$GO_NAME-pb-compiler.log" 2>&1
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
display_warning "Failed to install goprotobuf compiler\nCheck the logs at $GVM_ROOT/logs/$GO_NAME-pb-compiler.log" display_warning "Failed to install goprotobuf compiler. Check the logs at $GVM_ROOT/logs/$GO_NAME-pb-compiler.log"
return 1 return 1
fi fi
fi fi
} }
install_from_source() {
download_source
check_tag
if [[ "$?" == "1" ]]; then
update_source
check_tag || display_fatal "Unrecognized Go version"
fi
if [[ "$GO_NAME" == "" ]]; then
GO_NAME=$version
fi
install_go
GVM_GOINSTALL="goinstall"
which goinstall &> /dev/null ||
GVM_GOINSTALL="go get"
x="$(cd "$GO_CACHE_PATH" && git tag)"; echo "${x#*b0819469a6df}" | $GREP_PATH "$version " &> /dev/null
if [[ "$?" == "1" ]]; then
if [[ "$INSTALL_BUILD_TOOLS" == "true" ]]; then
install_gb || display_warning "Failed to install gb"
install_gpkg || display_warning "Failed to install gpkg"
fi
if [[ "$INSTALL_PB" == "true" ]]; then
install_goprotobuf
fi
fi
cd "$GO_INSTALL_ROOT" && find . > manifest
}
main() { main() {
trap 'display_fatal "Canceled!"' INT trap 'display_fatal "Canceled!"' INT
read_command_line "$@" read_command_line "$@"
[[ "$VERSION" == "" ]] && display_fatal "No version specified" [[ "$VERSION" == "" ]] && display_fatal "No version specified"
if [[ "x$INSTALL_SOURCE" != "xbinary" ]]; then if [[ "$GO_NAME" == "" ]]; then
download_source GO_NAME=$VERSION
check_tag
if [[ "$?" == "1" ]]; then
update_source
check_tag || display_fatal "Unrecognized Go version"
fi
if [[ "$GO_NAME" == "" ]]; then
GO_NAME=$version
fi
install_go
else
if [[ "$GO_NAME" == "" ]]; then
GO_NAME=$VERSION
fi
install_go_binary
fi fi
GVM_GOINSTALL="goinstall" if [[ "x$INSTALL_SOURCE" == "xbinary" ]]; then
which goinstall &> /dev/null || install_go_binary
GVM_GOINSTALL="go get" elif [[ "x$INSTALL_SOURCE" == "xprefer-binary" ]]; then
install_go_binary || {
if [[ "x$INSTALL_SOURCE" != "xbinary" ]]; then display_message "Falling back to source installation of $GO_NAME"
x="$(hg tags -R "$GO_CACHE_PATH")"; echo "${x#*b0819469a6df}" | $GREP_PATH "$version " &> /dev/null install_from_source
if [[ "$?" == "1" ]]; then }
if [[ "$INSTALL_BUILD_TOOLS" == "true" ]]; then else
install_gb || display_warning "Failed to install gb" install_from_source
install_gpkg || display_warning "Failed to install gpkg"
fi
if [[ "$INSTALL_PB" == "true" ]]; then
install_goprotobuf
fi
fi
fi fi
cd "$GO_INSTALL_ROOT" && find . > manifest cd "$GO_INSTALL_ROOT" && find . > manifest
+5 -2
View File
@@ -32,10 +32,13 @@ read_command_line "$@"
echo echo
display_message "gvm gos (available)" display_message "gvm gos (available)"
echo echo
versions=$(curl -s https://go.googlecode.com/hg/.hgtags | awk '{ print $2 }' | $SORT_PATH) display_message "h=========="
go_repo_url=git@github.com:golang/go.git
versions=$(git ls-remote -t ${go_repo_url} | awk -F/ '{ print $NF }' | $SORT_PATH)
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
display_fatal "Failed to get version list from Google" display_fatal "Failed to get version list from Github"
fi fi
display_message "~~~~~~~~~~~~~"
for version in $versions; do for version in $versions; do
if [[ "$tag_filter" == "release" ]]; then if [[ "$tag_filter" == "release" ]]; then
if [[ "${version:0:7}" == "release" ]]; then if [[ "${version:0:7}" == "release" ]]; then
+1 -1
View File
@@ -2,7 +2,7 @@
. "$GVM_ROOT/scripts/functions" . "$GVM_ROOT/scripts/functions"
[[ $1 != "" ]] || [[ $1 != "" ]] ||
display_fatal "Please specifiy the name" display_fatal "Please specify the name"
target_top=$GVM_ROOT target_top=$GVM_ROOT
target_set_name=$1 target_set_name=$1
+1 -1
View File
@@ -5,7 +5,7 @@
display_fatal "No Go version selected" display_fatal "No Go version selected"
[[ $1 != "" ]] || [[ $1 != "" ]] ||
display_fatal "Please specifiy the name" display_fatal "Please specify the name"
target_top=$GVM_ROOT target_top=$GVM_ROOT
target_set_name=$1 target_set_name=$1
+1 -1
View File
@@ -2,7 +2,7 @@
. "$GVM_ROOT/scripts/functions" . "$GVM_ROOT/scripts/functions"
[[ "$1" == "" ]] && [[ "$1" == "" ]] &&
display_fatal "Please specifiy the version" display_fatal "Please specify the version"
fuzzy_match=$($LS_PATH "$GVM_ROOT/gos" | $SORT_PATH | $GREP_PATH "$1" | $HEAD_PATH -n 1 | $GREP_PATH "$1") || fuzzy_match=$($LS_PATH "$GVM_ROOT/gos" | $SORT_PATH | $GREP_PATH "$1" | $HEAD_PATH -n 1 | $GREP_PATH "$1") ||
display_fatal "Invalid version $1" display_fatal "Invalid version $1"
+1 -1
View File
@@ -4,5 +4,5 @@
cd "$GVM_ROOT/archive/go" &> /dev/null || cd "$GVM_ROOT/archive/go" &> /dev/null ||
display_fatal "Failed to find local Go source" display_fatal "Failed to find local Go source"
hg pull || display_fatal "Failed to update" git pull || display_fatal "Failed to update"
+8 -9
View File
@@ -1,15 +1,14 @@
## Cleanup test objects ## Cleanup test objects
gvm uninstall tip > /dev/null 2>&1 gvm uninstall go1.4 > /dev/null 2>&1
gvm uninstall go1.0.3 > /dev/null 2>&1 gvm uninstall master > /dev/null 2>&1
gvm uninstall go1.1.1 > /dev/null 2>&1 gvm uninstall go1.1.1 > /dev/null 2>&1
gvm uninstall go1.2 > /dev/null 2>&1 gvm uninstall go1.2.2 > /dev/null 2>&1
####################### #######################
gvm install tip #status=0 gvm install go1.4 #status=0
gvm list #status=0; match=/tip/ GOROOT_BOOTSTRAP=$GVM_ROOT/gos/go1.4 gvm install master #status=0
gvm install go1.0.3 #status=0 gvm list #status=0; match=/master/
gvm list #status=0; match=/go1.0.3/
gvm install go1.1.1 #status=0 gvm install go1.1.1 #status=0
gvm list #status=0; match=/go1.1.1/ gvm list #status=0; match=/go1.1.1/
gvm install go1.2 #status=0 gvm install go1.2.2 #status=0
gvm list #status=0; match=/go1.2/ gvm list #status=0; match=/go1.2.2/
+7 -7
View File
@@ -6,14 +6,14 @@ gvm alias delete bar
####################### #######################
gvm alias # status=0 gvm alias # status=0
gvm alias create foo go1.2 # status=0 gvm alias create foo go1.2.2 # status=0
gvm alias create bar go1.0.3 # status=0 gvm alias create bar go1.1.1 # status=0
gvm alias list # status=0; match=/gvm go aliases/; match=/foo \(go1\.2\)/; match=/bar \(go1\.0\.3\)/ gvm alias list # status=0; match=/gvm go aliases/; match=/foo \(go1\.2\.2\)/; match=/bar \(go1\.1\.1\)/
gvm use foo # status=0 gvm use foo # status=0
go version # status=0; match=/go1\.2/ go version # status=0; match=/go1\.2\.2/
gvm use bar # status=0 gvm use bar # status=0
go version # status=0; match=/go1\.0\.3/ go version # status=0; match=/go1\.1\.1/
gvm alias delete foo gvm alias delete foo
gvm alias list # status=0; match=/gvm go aliases/; match!=/foo \(go1\.2\)/; match=/bar \(go1\.0\.3\)/ gvm alias list # status=0; match=/gvm go aliases/; match!=/foo \(go1\.2\.2\)/; match=/bar \(go1\.1\.1\)/
gvm alias delete bar gvm alias delete bar
gvm alias list # status=0; match=/gvm go aliases/; match!=/foo \(go1\.2\)/; match!=/bar \(go1\.0\.3\)/ gvm alias list # status=0; match=/gvm go aliases/; match!=/foo \(go1\.2\.2\)/; match!=/bar \(go1\.1\.1\)/
+4 -4
View File
@@ -1,5 +1,5 @@
source $GVM_ROOT/scripts/gvm source $GVM_ROOT/scripts/gvm
gvm use go1.2 # status=0 gvm use go1.2.2 # status=0
go version # status=0; match=/go1\.2/ go version # status=0; match=/go1\.2\.2/
gvm use go1.0.3 # status=0 gvm use go1.1.1 # status=0
go version # status=0; match=/go1\.0\.3/ go version # status=0; match=/go1\.1\.1/
@@ -0,0 +1 @@
gvm install go1.2.2 --binary #status=0
@@ -0,0 +1 @@
gvm install go1.2.2 #status=0
@@ -0,0 +1 @@
gvm install go1.2 --prefer-binary #status=0