Skip to content

Instantly share code, notes, and snippets.

@myitcv
Created April 13, 2018 19:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save myitcv/1b11bc1627ac9a57f402364b8df7bda2 to your computer and use it in GitHub Desktop.
Save myitcv/1b11bc1627ac9a57f402364b8df7bda2 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -eu
cd `mktemp -d`
export GOPATH=$PWD
pwd
root="github.com/myitcv"
v1="v1.2.0"
v2="v2.1.0"
# module at repo root
repo="$root/vgohello"
module=$repo
pkg="$module/hello"
pkgName=$(basename $pkg)
echo "********** Setup $pkg"
mkdir $(basename $repo) && cd $_
git init
git config commit.gpgsign false
cat <<EOD > go.mod
module "$module"
EOD
mkdir $pkgName
cat <<EOD > $pkgName/$pkgName.go
package $pkgName
const Name = "$pkg"
EOD
git add -A
git commit -am "Initial commit in $repo"
git remote add origin https://$repo.git
git fetch
if [ "$(git tag -l)" != "" ]
then
git push origin --delete $(git tag -l)
fi
git push -f # wipe the slate clean
git tag -f $v1
git push -f origin $v1
vgo test ./...
mkdir -p v2/$pkgName
cat <<EOD > v2/$pkgName/$pkgName.go
package $pkgName
const Name = "$pkg/v2"
EOD
git add -A
git commit -am "Second commit in $repo"
git push
git tag -f $v2
git push -f origin $v2
vgo test ./...
echo "********** END $pkg"
cd ..
# end
# submodule
repo="$root/vgopkg"
module="$repo/hello"
pkg=$module
pkgName=$(basename $pkg)
echo "********** Setup $pkg"
mkdir $(basename $repo) && cd $_
git init
git config commit.gpgsign false
cat <<EOD > go.mod
module "$repo"
EOD
mkdir $pkgName && cd $_
cat <<EOD > go.mod
module "$module"
EOD
cat <<EOD > $pkgName.go
package $pkgName
const Name = "$pkg"
EOD
git add -A
git commit -am "Initial commit in $repo"
git remote add origin https://$repo.git
git fetch
if [ "$(git tag -l)" != "" ]
then
git push origin --delete $(git tag -l)
fi
git push -f # wipe the slate clean
git tag -f hello/$v1
git push -f origin hello/$v1
vgo test ./...
mkdir v2
cat <<EOD > v2/$pkgName.go
package $pkgName
const Name = "$pkg/v2"
EOD
git add -A
git commit -am "Second commit in $module"
git push
git tag -f hello/$v2
git push -f origin hello/$v2
vgo test ./...
echo "********** END $pkg"
cd ../../
# end
# main
repo="$root/vgomain"
module="$repo"
pkg=$module
pkgName=$(basename $pkg)
echo "********** Setup $pkg"
mkdir $(basename $repo) && cd $_
git init
git config commit.gpgsign false
cat <<EOD > go.mod
module "$repo"
EOD
cat <<EOD > $pkgName.go
package main
import (
vgohello "github.com/myitcv/vgohello/hello"
vgohellov2 "github.com/myitcv/vgohello/v2/hello"
hello "github.com/myitcv/vgopkg/hello"
hellov2 "github.com/myitcv/vgopkg/hello/v2"
)
func main() {
fmt.Printf("vgohello.Name: %v\n", vgohello.Name)
fmt.Printf("vgohellov2.Name: %v\n", vgohellov2.Name)
fmt.Printf("hello.Name: %v\n", hello.Name)
fmt.Printf("hellov2.Name: %v\n", hellov2.Name)
}
EOD
git add -A
git commit -am "Initial commit in $repo"
git remote add origin https://$repo.git
git push -f # wipe the slate clean
vgo test ./...
echo "********** END $pkg"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment