add name to context

Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
diff --git a/cli/cli.go b/cli/cli.go
index ae218c1..19d8e64 100644
--- a/cli/cli.go
+++ b/cli/cli.go
@@ -15,6 +15,8 @@
 const (
 	// GitCommitKey is the key for the program's GitCommit data.
 	GitCommitKey ContextKey = "program.GitCommit"
+	// NameKey is the key for the program's name.
+	NameKey ContextKey = "program.Name"
 	// VersionKey is the key for the program's Version data.
 	VersionKey ContextKey = "program.Version"
 )
@@ -370,5 +372,6 @@
 func (p *Program) defaultContext() context.Context {
 	// Create the context with the values we need to pass to the version command.
 	ctx := context.WithValue(context.Background(), GitCommitKey, p.GitCommit)
+	ctx = context.WithValue(ctx, NameKey, p.Name)
 	return context.WithValue(ctx, VersionKey, p.Version)
 }
diff --git a/cli/cli_test.go b/cli/cli_test.go
index f5dab56..6d74f88 100644
--- a/cli/cli_test.go
+++ b/cli/cli_test.go
@@ -45,7 +45,7 @@
 		return errExpected
 	}
 
-	versionCommandExpectedStdout = fmt.Sprintf(`ship:
+	versionCommandExpectedStdout = fmt.Sprintf(`yo:
  version     : 0.0.0
  git hash    :`+" "+`
  go version  : %s
@@ -174,6 +174,7 @@
 
 func TestProgramWithNoCommandsOrFlagsOrAction(t *testing.T) {
 	p := NewProgram()
+	p.Name = "yo"
 	testCases := append(testCasesEmpty(), testCasesUndefinedCommand()...)
 
 	for _, tc := range testCases {
@@ -185,6 +186,7 @@
 
 func TestProgramWithNoCommandsOrFlags(t *testing.T) {
 	p := NewProgram()
+	p.Name = "yo"
 	p.Action = nilActionFunction
 	testCases := append(testCasesEmpty(), testCasesWithAction()...)
 
@@ -197,6 +199,7 @@
 
 func TestProgramHelpFlag(t *testing.T) {
 	p := NewProgram()
+	p.Name = "yo"
 	p.FlagSet = flag.NewFlagSet("global", flag.ContinueOnError)
 	p.Commands = []Command{
 		&testCommand{},
@@ -222,6 +225,7 @@
 
 func TestProgramWithCommandsAndAction(t *testing.T) {
 	p := NewProgram()
+	p.Name = "yo"
 	p.Commands = []Command{
 		&errorCommand{},
 		&testCommand{},
@@ -272,6 +276,7 @@
 
 func TestProgramWithCommands(t *testing.T) {
 	p := NewProgram()
+	p.Name = "yo"
 	p.Commands = []Command{
 		&errorCommand{},
 		&testCommand{},
diff --git a/cli/version.go b/cli/version.go
index 9c41e88..ff151a7 100644
--- a/cli/version.go
+++ b/cli/version.go
@@ -26,7 +26,7 @@
  go version  : %s
  go compiler : %s
  platform    : %s/%s
-`, "ship", ctx.Value(VersionKey).(string), ctx.Value(GitCommitKey).(string),
+`, ctx.Value(NameKey).(string), ctx.Value(VersionKey).(string), ctx.Value(GitCommitKey).(string),
 		runtime.Version(), runtime.Compiler, runtime.GOOS, runtime.GOARCH)
 	return nil
 }