github.com/netdata/go.d.plugin@v0.58.1/modules/nvidia_smi/init.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package nvidia_smi
     4  
     5  import (
     6  	"fmt"
     7  	"os"
     8  	"os/exec"
     9  )
    10  
    11  func (nv *NvidiaSMI) initNvidiaSMIExec() (nvidiaSMI, error) {
    12  	binPath := nv.BinaryPath
    13  	if _, err := os.Stat(binPath); os.IsNotExist(err) {
    14  		path, err := exec.LookPath(nv.binName)
    15  		if err != nil {
    16  			return nil, fmt.Errorf("error on lookup '%s': %v", nv.binName, err)
    17  		}
    18  		binPath = path
    19  	}
    20  
    21  	return newNvidiaSMIExec(binPath, nv.Config, nv.Logger)
    22  }