mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-22 00:08:11 +00:00
[no-relnote] Use symlinks.Resolve in hook
This change removes duplicate logic from the create-symlinks hook and uses symlinks.Resolve instead. Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
parent
c30ca0fdc3
commit
cdf39fbad3
@ -211,21 +211,14 @@ func changeRoot(current string, new string, path string) (string, error) {
|
|||||||
// Locate returns the link target of the specified filename or an empty slice if the
|
// Locate returns the link target of the specified filename or an empty slice if the
|
||||||
// specified filename is not a symlink.
|
// specified filename is not a symlink.
|
||||||
func (m command) Locate(filename string) ([]string, error) {
|
func (m command) Locate(filename string) ([]string, error) {
|
||||||
info, err := os.Lstat(filename)
|
target, err := symlinks.Resolve(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to get file info: %v", info)
|
return nil, err
|
||||||
}
|
}
|
||||||
if info.Mode()&os.ModeSymlink == 0 {
|
if target == filename {
|
||||||
m.logger.Debugf("%v is not a symlink", filename)
|
m.logger.Debugf("%v is not a symlink", filename)
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
target, err := os.Readlink(filename)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error checking symlink: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
m.logger.Debugf("Resolved link: '%v' => '%v'", filename, target)
|
m.logger.Debugf("Resolved link: '%v' => '%v'", filename, target)
|
||||||
|
|
||||||
return []string{target}, nil
|
return []string{target}, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user