31 Commits
Author SHA1 Message Date
Joshua Bussdieker 1b690b3099 Merge branch 'master' into ltr 2012-03-22 22:11:01 -07:00
Joshua Bussdieker e5d5641e31 Bump version 2012-03-22 22:10:54 -07:00
Joshua Bussdieker f99f732164 Merge branch 'master' into ltr 2012-03-22 22:10:33 -07:00
Joshua Bussdieker 52a6e4afc9 Merge branch 'master' of github.com:moovweb/gvm 2012-03-22 22:09:30 -07:00
Joshua Bussdieker 3a5813784e Find the system ls command and use it to fix issue #6 2012-03-22 22:09:05 -07:00
Hampton Catlin 12b1d1a254 adding in joshs credit 2012-03-22 13:18:00 -07:00
Joshua Bussdieker be751c7d69 Bump version 2012-03-20 05:43:25 -07:00
Joshua Bussdieker 68c0ffdf9e Don't know how this got deleted 2012-03-20 05:39:50 -07:00
Joshua Bussdieker 469bd7c81c Cleanup system package install 2012-03-20 05:36:27 -07:00
Joshua Bussdieker a9640b0bbc Better error messages 2012-03-20 03:16:32 -07:00
Joshua Bussdieker 631872e847 Merge branch 'master' into ltr 2012-03-20 03:01:03 -07:00
Joshua Bussdieker aec0080464 Check for git before install 2012-03-20 03:00:40 -07:00
Joshua Bussdieker 0771bd160e Merge branch 'master' into ltr 2012-03-20 01:03:32 -07:00
Joshua Bussdieker 13ef2e1f19 Bump version 2012-03-20 01:03:26 -07:00
Joshua Bussdieker 6050e54ba7 Merge branch 'master' into ltr 2012-03-20 01:02:02 -07:00
Joshua Bussdieker 03ae59f0ff Detect existing versions of Go 2012-03-20 01:01:00 -07:00
Joshua Bussdieker bc2ef7ba41 Fix bug in pb option 2012-03-19 22:05:49 -07:00
Joshua Bussdieker a28c8f220e Use display_warning function 2012-03-19 21:51:54 -07:00
Joshua Bussdieker 6bbf1f3bb5 Safer strings 2012-03-19 21:44:39 -07:00
Joshua Bussdieker 55ae6dd774 Make protocol buffer support optional 2012-03-19 21:44:14 -07:00
Joshua Bussdieker aaf041ac83 Merge branch 'master' into ltr 2012-03-19 21:11:52 -07:00
Joshua Bussdieker 293096ad05 That's a bug if I've ever seen one! 2012-03-19 21:11:18 -07:00
Joshua Bussdieker 4558bd0b53 That's a bug if I've ever seen one! 2012-03-19 21:09:25 -07:00
Joshua Bussdieker f0e3956030 Bump version 2012-03-19 20:37:52 -07:00
Joshua Bussdieker e3246cef0d Match gpkg help format 2012-03-19 20:36:05 -07:00
Joshua Bussdieker 4359f5252f Fix path bug and add back config 2012-03-18 11:13:41 -07:00
jbussdieker e8076a83fb Merge pull request #4 from hoisie/master
Use HTTPS instead of SSH when downloading the git repo
2012-03-17 16:49:47 -07:00
Michael Hoisie bc1fc149f3 Use HTTP instead of SSH to access the git repo. Some firewalls block port port 9418 (the defailt for git ssh) 2012-03-17 14:23:12 -07:00
Joshua Bussdieker 6e8720de05 Bumping version 2012-03-17 06:58:43 -07:00
Joshua Bussdieker 0cae267942 Update source 2012-03-17 06:56:41 -07:00
Joshua Bussdieker 578436bb4e Update help and remove more gvm pkg artifacts 2012-03-14 04:42:37 -07:00
16 changed files with 130 additions and 70 deletions
+1
View File
@@ -1,4 +1,5 @@
# gvm
by Josh Bussdieker (jbuss, jaja, jbussdieker)
GVM provides an interface to manage Go versions.
+1 -1
View File
@@ -1 +1 @@
1.0.9
1.0.14
+8 -14
View File
@@ -20,7 +20,7 @@ fi
$GVM_ROOT/scripts/gvm-check
if [[ "$?" != "0" ]]; then
display_error "Missing requirements. Please see messages above"
display_error "Missing requirements."
fi
if [[ $command == "version" ]]; then
@@ -32,28 +32,22 @@ else
elif [[ -n $command ]]; then
display_error "Unrecognized command line argument: '$command'"
else
echo "= gvm
echo "Usage: gvm [command]
* http://github.com/moovweb/gvm
== DESCRIPTION:
GVM is the Go Version Manager
== Usage
gvm Command
== Command
Description:
GVM is the Go Version Manager
Commands:
version - print the gvm version number
get - gets the latest code (for debugging)
use - select a go version to use
diff - view changes to Go root
implode - completely remove gvm
install - install go versions
uninstall - uninstall go versions
list - list installed go versions
listall - list available versions
pkgset - manage go packages sets
pkg - manage go packages"
"
fi
fi
-6
View File
@@ -1,6 +0,0 @@
if [[ -f Makefile.gvm ]]; then
make -f Makefile.gvm $@
else
gb -bi
fi
+27 -1
View File
@@ -16,6 +16,26 @@ update_profile() {
fi
}
check_existing_go() {
if [ "$GOROOT" == "" ]; then
echo "No existing Go versions detected"
return
fi
echo "Created profile for existing install of Go at $GOROOT"
mkdir -p $GVM_DEST/$GVM_NAME/environments &> /dev/null || display_error "Failed to create environment directory"
mkdir -p $GVM_DEST/$GVM_NAME/pkgsets/system/global &> /dev/null || display_error "Failed to create new package set"
mkdir -p $GVM_DEST/$GVM_NAME/gos/system &> /dev/null || display_error "Failed to create new Go folder"
cat << EOF > $GVM_DEST/$GVM_NAME/environments/system
# Automatically generated file. DO NOT EDIT!
export GVM_ROOT; GVM_ROOT="$GVM_DEST/$GVM_NAME"
export gvm_go_name; gvm_go_name="system"
export gvm_pkgset_name; gvm_pkgset_name="global"
export GOROOT; GOROOT="$GOROOT"
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"
EOF
}
BRANCH=$1
GVM_DEST=$2
if [ "$GVM_DEST" == "" ]; then
@@ -25,11 +45,16 @@ else
GVM_NAME="gvm"
fi
SRC_REPO=git://github.com/moovweb/gvm.git
SRC_REPO=https://github.com/moovweb/gvm.git
[ "$GVM_DEST" == "" ] && display_error "No destination specified!"
[ -d $GVM_DEST/$GVM_NAME ] && display_error "Already installed!"
[ -d $GVM_DEST ] || mkdir -p $GVM_DEST > /dev/null 2>&1 || display_error "Failed to create $GVM_DEST"
[ -z `which git` ] && display_error "Could not find git
linux: apt-get install git
mac: brew install git
"
cd $GVM_DEST && git clone $SRC_REPO $GVM_NAME > /dev/null 2>&1 ||
display_error "Failed to clone from $SRC_REPO into $GVM_DEST/$GVM_NAME"
@@ -65,6 +90,7 @@ if [ "$?" != "0" ]; then
fi
echo "export GVM_ROOT=$GVM_DEST/$GVM_NAME" > $GVM_DEST/$GVM_NAME/scripts/gvm
echo ". \$GVM_ROOT/scripts/gvm-default" >> $GVM_DEST/$GVM_NAME/scripts/gvm
check_existing_go
[[ -s "$GVM_DEST/$GVM_NAME/scripts/gvm" ]] && source "$GVM_DEST/$GVM_NAME/scripts/gvm"
echo "Installed GVM v${GVM_VERSION}"
echo
+1
View File
@@ -0,0 +1 @@
git://github.com/moovweb
+6 -4
View File
@@ -1,5 +1,7 @@
_gvm()
{
LS_PATH=`which ls` || return 1
local cur prev opts base
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
@@ -13,7 +15,7 @@ _gvm()
use|delete|empty)
[[ "$gvm_go_name" == "" ]] && return 1
[[ $COMP_CWORD > 3 ]] && return 1
local version=$(for x in `ls $GVM_ROOT/pkgsets/$gvm_go_name`; do echo ${x} ; done )
local version=$(for x in `$LS_PATH $GVM_ROOT/pkgsets/$gvm_go_name`; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${version}" -- ${cur}) )
return 0
;;
@@ -33,11 +35,11 @@ _gvm()
[[ "$gvm_go_name" == "" ]] && return 1
[[ "$gvm_pkgset_name" == "" ]] && return 1
if [[ "$COMP_CWORD" == "3" ]]; then
local version=$(for x in `ls $GVM_ROOT/pkgsets/$gvm_go_name/$gvm_pkgset_name/pkg.gvm`; do echo ${x} ; done )
local version=$(for x in `$LS_PATH $GVM_ROOT/pkgsets/$gvm_go_name/$gvm_pkgset_name/pkg.gvm`; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${version}" -- ${cur}) )
return 0
elif [[ "$COMP_CWORD" == "4" ]]; then
local version=$(for x in `ls $GVM_ROOT/pkgsets/$gvm_go_name/$gvm_pkgset_name/pkg.gvm/${COMP_WORDS[3]}`; do echo ${x} ; done )
local version=$(for x in `$LS_PATH $GVM_ROOT/pkgsets/$gvm_go_name/$gvm_pkgset_name/pkg.gvm/${COMP_WORDS[3]}`; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${version}" -- ${cur}) )
return 0
fi
@@ -63,7 +65,7 @@ _gvm()
use|uninstall)
[ ! -d $GVM_ROOT/gos ] && return 1
[[ $COMP_CWORD > 2 ]] && return 1
local installed_versions=$(for x in `ls $GVM_ROOT/gos`; do echo ${x} ; done )
local installed_versions=$(for x in `$LS_PATH $GVM_ROOT/gos`; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${installed_versions}" -- ${cur}) )
return 0
;;
+2 -1
View File
@@ -1,10 +1,11 @@
#!/bin/bash
. $GVM_ROOT/scripts/functions
LS_PATH=`which ls` || display_error "$LS_ERROR" || return 1
version=$1
if [ "$version" != "" ]; then
fuzzy_match=`ls $GVM_ROOT/gos | sort | grep "$version" | head -n 1 | grep "$version"` ||
fuzzy_match=`$LS_PATH $GVM_ROOT/gos | sort | grep "$version" | head -n 1 | grep "$version"` ||
display_error "Invalid version $version"
foldername=$GVM_ROOT/gos/$fuzzy_match
+7 -1
View File
@@ -1,3 +1,6 @@
#!/bin/bash
. $GVM_ROOT/scripts/function/errors
function display_error() {
tput sgr0
tput setaf 1
@@ -15,15 +18,18 @@ function display_message() {
}
function gvm_pkgset_use() {
LS_PATH=`which ls` || display_error "$LS_ERROR" || return 1
[[ "$1" != "" ]] ||
display_error "Please specify a package set" || return 1
[[ "$gvm_go_name" != "" ]] ||
display_error "No Go version selected" || return 1
fuzzy_match=`ls $GVM_ROOT/environments | sort | grep "$gvm_go_name@" | grep "$1" | head -n 1` ||
fuzzy_match=`$LS_PATH $GVM_ROOT/environments | sort | grep "$gvm_go_name@" | grep "$1" | head -n 1` ||
display_error "Invalid package set" || return 1
export PATH=$GVM_PATH_BACKUP
. "$GVM_ROOT/environments/$fuzzy_match" ||
display_error "Failed to source the package set environment" || return 1
+8 -3
View File
@@ -1,3 +1,6 @@
#!/bin/bash
. $GVM_ROOT/scripts/function/errors
function display_error() {
tput sgr0
tput setaf 1
@@ -15,15 +18,17 @@ function display_message() {
}
function gvm_use() {
LS_PATH=`which ls` || display_error "$LS_ERROR" || return 1
[[ "$1" != "" ]] ||
display_error "Please specifiy the version" || return 1
fuzzy_match=`ls $GVM_ROOT/gos | sort | grep "$1" | head -n 1 | grep "$1"` ||
fuzzy_match=`$LS_PATH $GVM_ROOT/gos | sort | grep "$1" | head -n 1 | grep "$1"` ||
display_error "Invalid version $1" || return 1
export PATH=$GVM_PATH_BACKUP
. $GVM_ROOT/environments/$fuzzy_match
. $GVM_ROOT/environments/$fuzzy_match &> /dev/null || display_error "Couldn't source environment" || return 1
if [[ "$2" == "--default" ]]; then
cp $GVM_ROOT/environments/$fuzzy_match $GVM_ROOT/environments/default
cp $GVM_ROOT/environments/$fuzzy_match $GVM_ROOT/environments/default || display_error "Couldn't make $fuzzy_match default"
fi
display_message "Now using version $fuzzy_match"
+1
View File
@@ -0,0 +1 @@
LS_ERROR="Couldn't find ls"
+31 -9
View File
@@ -1,15 +1,37 @@
#!/bin/bash
. $GVM_ROOT/scripts/functions
# Check for hg
[ -z `which hg` ] &&
display_error '* Could not find mercurial (try `sudo apt-get install mercurial`)'
[ -z `which ar` ] &&
display_error '* Could not find binutils (try `sudo apt-get install binutils (or binutils-multiarch)`)'
[ -z `which bison` ] &&
display_error '* Could not find bison (try `sudo apt-get install bison`)'
[ -z `which gcc` ] &&
display_error '* Could not find gcc (try `sudo apt-get install gcc`)'
[ -z `which make` ] &&
display_error '* Could not find make (try `sudo apt-get install make`)'
display_warning "Could not find mercurial
linux: apt-get install mercurial
mac: brew install mercurial
" && exit 1
# Check for ar
[ -z `which ar` ] &&
display_warning "Could not find binutils
linux: apt-get install binutils
" && exit 1
# Check for bison
[ -z `which bison` ] &&
display_warning "Could not find bison
linux: apt-get install bison
" && exit 1
# Check for gcc
[ -z `which gcc` ] &&
display_warning "Could not find gcc
linux: apt-get install gcc
" && exit 1
# Check for make
[ -z `which make` ] &&
display_warning "Could not find make
linux: apt-get install make
" && exit 1
# All good!
exit 0
+30 -25
View File
@@ -3,25 +3,35 @@
function show_usage() {
echo "Usage: gvm install [version] [options]"
echo " -s, --source=SOURCE Install Go from specified source."
echo " -h, --help Display this message."
echo " -s, --source=SOURCE Install Go from specified source."
echo " -pb, --with-protobuf Install Go protocol buffers."
echo " -h, --help Display this message."
}
read_command_line() {
VERSION=$1
shift
if [ "${VERSION:0:1}" != "-" ]; then
shift
else
display_warning "Invalid version: $1"
show_usage
exit 1
fi
GO_SOURCE_URL=https://go.googlecode.com/hg/
for i in $*; do
case $i in
-s=*|--source=*)
GO_SOURCE_URL=$i
;;
-h|--help*)
-pb|--with-protobuf)
INSTALL_PB="true"
;;
-h|--help)
show_usage
exit 0
;;
*)
echo "Invalid option $i"
display_warning "Invalid option $i"
show_usage
exit 65 # Bad arguments
;;
@@ -38,7 +48,7 @@ download_source() {
}
check_tag() {
version=`hg tags -R $GO_CACHE_PATH | awk '{print $1}' | sort | grep $VERSION | head -n 1 | grep $VERSION`
version=`hg tags -R $GO_CACHE_PATH | awk '{print $1}' | sort | grep "$VERSION" | head -n 1 | grep "$VERSION"`
}
update_source() {
@@ -81,11 +91,11 @@ create_enviroment() {
install_go() {
GO_INSTALL_ROOT=$GVM_ROOT/gos/$version
#trap 'rm -rf $GO_INSTALL_ROOT; display_error "Canceled!"' INT
trap 'rm -rf $GO_INSTALL_ROOT; display_error "Canceled!"' INT
# Check for existing install
if [ -d $GO_INSTALL_ROOT ]; then
[ -f $GO_INSTALL_ROOT/manifest ] &&
if [ -d "$GO_INSTALL_ROOT" ]; then
[ -f "$GO_INSTALL_ROOT/manifest" ] &&
display_error "Already installed!"
display_warning "Removing corrupt install..."
gvm uninstall $version
@@ -104,34 +114,26 @@ install_go() {
install_gpkg() {
display_message " * Installing gpkg..."
$GVM_GOINSTALL github.com/moovweb/gpkg > $GVM_ROOT/logs/$version-gpkg.log 2>&1
if [[ $? -ne 0 ]]; then
echo "Failed to install gpkg"
return 1
fi
$GVM_GOINSTALL github.com/moovweb/gpkg > $GVM_ROOT/logs/$version-gpkg.log 2>&1 || return 1
}
install_gb() {
display_message " * Installing gb..."
$GVM_GOINSTALL github.com/skelterjohn/go-gb/gb > $GVM_ROOT/logs/$version-gb.log 2>&1
if [[ $? -ne 0 ]]; then
echo "Failed to install gb"
return 1
fi
$GVM_GOINSTALL github.com/jbussdieker/go-gb/gb > $GVM_ROOT/logs/$version-gb.log 2>&1 || return 1
}
install_goprotobuf() {
display_message " * Installing goprotobuf..."
$GVM_GOINSTALL goprotobuf.googlecode.com/hg/proto > $GVM_ROOT/logs/$version-pb-compiler.log 2>&1
if [[ $? -ne 0 ]]; then
echo "Failed to install goprotobuf"
display_warning "Failed to install goprotobuf"
return 1
fi
#if [[ $version == "release.r60.3" ]]; then
cd $GVM_ROOT/gos/$version/src/pkg/goprotobuf.googlecode.com/hg/compiler
make install >> $GVM_ROOT/logs/$version-pb-compiler.log 2>&1
if [[ $? -ne 0 ]]; then
echo "Failed to install goprotobuf compiler"
display_warning "Failed to install goprotobuf compiler"
return 1
fi
#fi
@@ -140,18 +142,21 @@ install_goprotobuf() {
main() {
trap 'display_error "Canceled!"' INT
read_command_line $@
[ -z $VERSION ] && display_error "No version specified"
[ "$VERSION" == "" ] && display_error "No version specified"
download_source
check_tag || (update_source && check_tag) || display_error "Unrecognized Go version"
install_go
GVM_GOINSTALL="goinstall"
which goinstall &> /dev/null ||
GVM_GOINSTALL="go get"
x="`hg tags -R ~/.gvm/archive/go`"; echo ${x#*b0819469a6df} | grep "$version " &> /dev/null
if [[ "$?" == "1" ]]; then
install_gpkg
install_gb
install_goprotobuf
install_gb || display_warning "Failed to install gb"
install_gpkg || display_warning "Failed to install gpkg"
if [ "$INSTALL_PB" == "true" ]; then
install_goprotobuf
fi
fi
cd $GO_INSTALL_ROOT && find . > manifest
}
+3 -2
View File
@@ -1,14 +1,15 @@
#!/bin/bash
. $GVM_ROOT/scripts/functions
LS_PATH=`which ls` || display_error "$LS_ERROR" || return 1
echo
display_message "gvm gos (installed)"
echo
if [ -d $GVM_ROOT/gos ]; then
if [[ "$gvm_go_name" != "" ]]; then
ls -1 $GVM_ROOT/gos | sed 's/^/ /g' | sed 's/^ '$gvm_go_name'/=> '$gvm_go_name'/g'
$LS_PATH -1 $GVM_ROOT/gos | sed 's/^/ /g' | sed 's/^ '$gvm_go_name'/=> '$gvm_go_name'/g'
else
ls -1 $GVM_ROOT/gos | sed 's/^/ /g'
$LS_PATH -1 $GVM_ROOT/gos | sed 's/^/ /g'
fi
fi
echo
+2 -2
View File
@@ -13,8 +13,8 @@ cp $GVM_ROOT/environments/$gvm_go_name $GVM_ROOT/environments/$gvm_go_name@$1 ||
display_error "Could copy environment"
echo "export gvm_pkgset_name=\"$1\"" >> $GVM_ROOT/environments/$gvm_go_name@$1 ||
display_error "Could not extend environment"
echo "export GOPATH; GOPATH=\"$GVM_ROOT/pkgsets/release.r60.3/$1:\$GOPATH\"" >> $GVM_ROOT/environments/$gvm_go_name@$1 ||
echo "export GOPATH; GOPATH=\"$GVM_ROOT/pkgsets/$gvm_go_name/$1:\$GOPATH\"" >> $GVM_ROOT/environments/$gvm_go_name@$1 ||
display_error "Could not extend environment"
echo "export PATH; PATH=\"$GVM_ROOT/pkgsets/release.r60.3/$1/bin:\$PATH\"" >> $GVM_ROOT/environments/$gvm_go_name@$1 ||
echo "export PATH; PATH=\"$GVM_ROOT/pkgsets/$gvm_go_name/$1/bin:\$PATH\"" >> $GVM_ROOT/environments/$gvm_go_name@$1 ||
display_error "Could not extend environment"
+2 -1
View File
@@ -1,10 +1,11 @@
#!/bin/bash
. $GVM_ROOT/scripts/functions
LS_PATH=`which ls` || display_error "$LS_ERROR" || return 1
[[ "$1" == "" ]] &&
display_error "Please specifiy the version"
fuzzy_match=`ls $GVM_ROOT/gos | sort | grep "$1" | head -n 1 | grep "$1"` ||
fuzzy_match=`$LS_PATH $GVM_ROOT/gos | sort | grep "$1" | head -n 1 | grep "$1"` ||
display_error "Invalid version $1"
if [ -d $GVM_ROOT/gos/$fuzzy_match ]; then