Cosmos Nicolaou | 39a00e0 | 2014-08-14 11:04:14 -0700 | [diff] [blame] | 1 | // +build linux |
| 2 | |
Cosmos Nicolaou | 6c6fa11 | 2014-08-19 13:22:33 -0700 | [diff] [blame] | 3 | package profiles |
Cosmos Nicolaou | 39a00e0 | 2014-08-14 11:04:14 -0700 | [diff] [blame] | 4 | |
| 5 | import ( |
| 6 | "fmt" |
| 7 | "syscall" |
| 8 | |
| 9 | "veyron2" |
| 10 | "veyron2/security" |
| 11 | ) |
| 12 | |
Cosmos Nicolaou | 39a00e0 | 2014-08-14 11:04:14 -0700 | [diff] [blame] | 13 | // Platform returns the description of the Platform this process is running on. |
| 14 | // A default value for veyron2.Platform is provided even if an error is |
| 15 | // returned; nil is never returned for the first return result. |
| 16 | func Platform() (*veyron2.Platform, error) { |
| 17 | var uts syscall.Utsname |
| 18 | if err := syscall.Uname(&uts); err != nil { |
| 19 | return &veyron2.Platform{}, err |
| 20 | } |
| 21 | d := &veyron2.Platform{ |
| 22 | Vendor: "google", |
| 23 | Model: "generic", |
Matt Rosencrantz | 3ab1ea0 | 2014-08-18 17:16:45 -0700 | [diff] [blame] | 24 | System: utsStr(uts.Sysname[:]), |
| 25 | Version: utsStr(uts.Version[:]), |
| 26 | Release: utsStr(uts.Release[:]), |
| 27 | Machine: utsStr(uts.Machine[:]), |
| 28 | Node: utsStr(uts.Nodename[:]), |
Cosmos Nicolaou | 39a00e0 | 2014-08-14 11:04:14 -0700 | [diff] [blame] | 29 | } |
| 30 | d.Identity = security.FakePublicID(fmt.Sprintf("%s/%s/%s", d.Vendor, d.Model, d.Node)) |
| 31 | return d, nil |
| 32 | } |