func()

in nsenter/nsenter.go [94:125]


func (ne *NSEnter) initPaths() error {
	ne.paths = map[string]string{}
	binaries := []string{
		"mount",
		"findmnt",
		"umount",
		"systemd-run",
		"stat",
		"touch",
		"mkdir",
		"sh",
		"chmod",
		"realpath",
	}
	// search for the required commands in other locations besides /usr/bin
	for _, binary := range binaries {
		// check for binary under the following directories
		for _, path := range []string{"/", "/bin", "/usr/sbin", "/usr/bin"} {
			binPath := filepath.Join(path, binary)
			if _, err := os.Stat(filepath.Join(ne.hostRootFsPath, binPath)); err != nil {
				continue
			}
			ne.paths[binary] = binPath
			break
		}
		// systemd-run is optional, bailout if we don't find any of the other binaries
		if ne.paths[binary] == "" && binary != "systemd-run" {
			return fmt.Errorf("unable to find %v", binary)
		}
	}
	return nil
}