From 1f5135d9bd5f4602f52326e5e585593634ef6f9f Mon Sep 17 00:00:00 2001
From: Laramie Leavitt <laramie.leavitt@gmail.com>
Date: Wed, 2 Mar 2016 01:00:40 -0800
Subject: [PATCH] Initial commit

---
 .gitignore     |  1 +
 BUILD          | 13 +++++++++++++
 README.md      |  9 +++++++++
 WORKSPACE      |  3 +++
 hello.go       | 11 +++++++++++
 local/BUILD    |  7 +++++++
 local/local.go |  5 +++++
 7 files changed, 49 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 BUILD
 create mode 100644 README.md
 create mode 100644 WORKSPACE
 create mode 100644 hello.go
 create mode 100644 local/BUILD
 create mode 100644 local/local.go

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ac51a05
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+bazel-*
diff --git a/BUILD b/BUILD
new file mode 100644
index 0000000..aba9c8f
--- /dev/null
+++ b/BUILD
@@ -0,0 +1,13 @@
+load("@bazel_tools//tools/build_rules/go:def.bzl", "go_prefix", "go_binary")
+
+package(
+    default_visibility = ["//visibility:public"],
+)
+
+go_prefix("github.com/lar/bazel-example-golang")
+
+go_binary(
+	name ="hello",
+	srcs = [ "hello.go" ],
+	deps = [ "//local" ],
+)
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..85277f3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,9 @@
+
+An example project demonstrating bazel build rules for go with
+a local binary (go_binary) and a local library (go_library).
+
+This requires a release > `bazel-0.20`.
+
+```
+$ bazel run :hello
+```
\ No newline at end of file
diff --git a/WORKSPACE b/WORKSPACE
new file mode 100644
index 0000000..87a849d
--- /dev/null
+++ b/WORKSPACE
@@ -0,0 +1,3 @@
+load("@bazel_tools//tools/build_rules/go:def.bzl", "go_repositories")
+
+go_repositories()
diff --git a/hello.go b/hello.go
new file mode 100644
index 0000000..5f50fe4
--- /dev/null
+++ b/hello.go
@@ -0,0 +1,11 @@
+package main 
+
+import (
+	"fmt"
+	
+	"github.com/lar/bazel-example-golang/local/local"
+)
+
+func main() {
+	fmt.Println("Hello", local.World())
+}
diff --git a/local/BUILD b/local/BUILD
new file mode 100644
index 0000000..f0d58ab
--- /dev/null
+++ b/local/BUILD
@@ -0,0 +1,7 @@
+load("@bazel_tools//tools/build_rules/go:def.bzl", "go_library")
+
+go_library(
+	name ="local",
+	srcs = [ "local.go" ],
+    visibility = ["//visibility:public"],
+)
diff --git a/local/local.go b/local/local.go
new file mode 100644
index 0000000..e714663
--- /dev/null
+++ b/local/local.go
@@ -0,0 +1,5 @@
+package local
+
+func World() string {
+	return "local.World!"
+}