mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-25 21:39:10 +00:00
Merge branch 'create-cdi-output-folder' into 'main'
Ensure output folder exists for CDI spec See merge request nvidia/container-toolkit/container-toolkit!250
This commit is contained in:
commit
78cafe45d4
@ -117,6 +117,10 @@ func (m command) run(c *cli.Context, cfg *config) error {
|
|||||||
if cfg.output == "" {
|
if cfg.output == "" {
|
||||||
outputTo = os.Stdout
|
outputTo = os.Stdout
|
||||||
} else {
|
} else {
|
||||||
|
err := createParentDirsIfRequired(cfg.output)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to create parent folders for output file: %v", err)
|
||||||
|
}
|
||||||
outputFile, err := os.Create(cfg.output)
|
outputFile, err := os.Create(cfg.output)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to create output file: %v", err)
|
return fmt.Errorf("failed to create output file: %v", err)
|
||||||
@ -594,3 +598,14 @@ func (m command) generateDeviceFolderPermissionHooks(nvidiaCTKPath string, devic
|
|||||||
|
|
||||||
return hooks, nil
|
return hooks, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// createParentDirsIfRequired creates the parent folders of the specified path if requried.
|
||||||
|
// Note that MkdirAll does not specifically check whether the specified path is non-empty and raises an error if it is.
|
||||||
|
// The path will be empty if filename in the current folder is specified, for example
|
||||||
|
func createParentDirsIfRequired(filename string) error {
|
||||||
|
dir := filepath.Dir(filename)
|
||||||
|
if dir == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return os.MkdirAll(dir, 0755)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user