Created
April 13, 2018 19:35
-
-
Save myitcv/1b11bc1627ac9a57f402364b8df7bda2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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