/ metadata.go
metadata.go
1 package main 2 3 import ( 4 "strings" 5 ) 6 7 // Metadata contains meta data about node, 8 // extracted from name string. 9 type Metadata struct { 10 Name string 11 Version string 12 OS string 13 GoVersion string 14 } 15 16 // UnknownMetadata represents metadata for failed to parse string. 17 var UnknownMetadata = &Metadata{"Unknown", "Unknown", "Unknown", "Unknown"} 18 19 // NewMetadata returns new Metadata object parsing string represtnation. 20 func NewMetadata(name string) *Metadata { 21 fields := strings.Split(name, "/") 22 if len(fields) != 4 { 23 return UnknownMetadata 24 } 25 26 return &Metadata{ 27 Name: fields[0], 28 Version: fields[1], 29 OS: fields[2], 30 GoVersion: fields[3], 31 } 32 }