VOL-1674 - add version reporting information

Change-Id: Ie6cc244c66077467d371ffb3506ea0f4e817c197
diff --git a/arouterd/arouterd.go b/arouterd/arouterd.go
index f5f2453..47445ac 100644
--- a/arouterd/arouterd.go
+++ b/arouterd/arouterd.go
@@ -18,9 +18,11 @@
 
 import (
 	"errors"
+	"flag"
 	"fmt"
 	"math"
 	"os"
+	"path"
 	"regexp"
 	"strconv"
 	"time"
@@ -28,6 +30,7 @@
 	"github.com/golang/protobuf/ptypes"
 	"github.com/golang/protobuf/ptypes/empty"
 	"github.com/opencord/voltha-go/common/log"
+	"github.com/opencord/voltha-go/common/version"
 	"github.com/opencord/voltha-go/kafka"
 	pb "github.com/opencord/voltha-protos/go/afrouter"
 	cmn "github.com/opencord/voltha-protos/go/common"
@@ -55,6 +58,10 @@
 	dn  bool
 }
 
+type Configuration struct {
+	DisplayVersionOnly *bool
+}
+
 var (
 	podNamespace = getStrEnv("POD_NAMESPACE", "voltha")
 	podGrpcPort  = uint64(getIntEnv("POD_GRPC_PORT", 0, math.MaxUint16, 50057))
@@ -784,6 +791,22 @@
 	var err error
 	var conn *grpc.ClientConn
 
+	config := &Configuration{}
+	cmdParse := flag.NewFlagSet(path.Base(os.Args[0]), flag.ContinueOnError)
+	config.DisplayVersionOnly = cmdParse.Bool("version", false, "Print version information and exit")
+
+	err = cmdParse.Parse(os.Args[1:])
+	if err != nil {
+		fmt.Printf("Error: %v\n", err)
+		os.Exit(1)
+	}
+
+	if *config.DisplayVersionOnly {
+		fmt.Println("VOLTHA API Server (afrouterd)")
+		fmt.Println(version.VersionInfo.String("  "))
+		return
+	}
+
 	// Set up the regular expression to identify the voltha cores
 	rwCoreFltr := regexp.MustCompile(`rw-core[0-9]-`)
 	roCoreFltr := regexp.MustCompile(`ro-core-`)