gopkg.in/essentialkaos/ek.v3@v3.5.1/system/info_linux.go (about)

     1  // +build linux
     2  
     3  package system
     4  
     5  // ////////////////////////////////////////////////////////////////////////////////// //
     6  //                                                                                    //
     7  //                     Copyright (c) 2009-2016 Essential Kaos                         //
     8  //      Essential Kaos Open Source License <http://essentialkaos.com/ekol?en>         //
     9  //                                                                                    //
    10  // ////////////////////////////////////////////////////////////////////////////////// //
    11  
    12  import (
    13  	"syscall"
    14  )
    15  
    16  // ////////////////////////////////////////////////////////////////////////////////// //
    17  
    18  // GetSystemInfo return system info
    19  func GetSystemInfo() (*SystemInfo, error) {
    20  	result := &SystemInfo{}
    21  
    22  	info := &syscall.Utsname{}
    23  	err := syscall.Uname(info)
    24  
    25  	if err != nil {
    26  		return result, err
    27  	}
    28  
    29  	result.Hostname = byteSliceToString(info.Nodename)
    30  	result.OS = byteSliceToString(info.Sysname)
    31  	result.Kernel = byteSliceToString(info.Release)
    32  	result.Arch = byteSliceToString(info.Machine)
    33  
    34  	return result, nil
    35  }