func getPathToAuth(sys *types.SystemContext) (string, error) {
	if sys != nil {
		if sys.AuthFilePath != "" {
			return sys.AuthFilePath, nil
		}
		if sys.RootForImplicitAbsolutePaths != "" {
			return filepath.Join(sys.RootForImplicitAbsolutePaths, fmt.Sprintf(defaultPerUIDPathFormat, os.Getuid())), nil
		}
	}

	runtimeDir := os.Getenv("XDG_RUNTIME_DIR")
	if runtimeDir != "" {
		// This function does not in general need to separately check that the returned path exists; that’s racy, and callers will fail accessing the file anyway.
		// We are checking for os.IsNotExist here only to give the user better guidance what to do in this special case.
		_, err := os.Stat(runtimeDir)
		if os.IsNotExist(err) {
			// This means the user set the XDG_RUNTIME_DIR variable and either forgot to create the directory
			// or made a typo while setting the environment variable,
			// so return an error referring to $XDG_RUNTIME_DIR instead of xdgRuntimeDirPath inside.
			return "", errors.Wrapf(err, "%q directory set by $XDG_RUNTIME_DIR does not exist. Either create the directory or unset $XDG_RUNTIME_DIR.", runtimeDir)
		} // else ignore err and let the caller fail accessing xdgRuntimeDirPath.
		return filepath.Join(runtimeDir, xdgRuntimeDirPath), nil
	}
	return fmt.Sprintf(defaultPerUIDPathFormat, os.Getuid()), nil
}
func getPathToAuth(sys *types.SystemContext) (string, error) {
	if sys != nil {
		if sys.AuthFilePath != "" {
			return sys.AuthFilePath, nil
		}
		if sys.RootForImplicitAbsolutePaths != "" {
			return filepath.Join(sys.RootForImplicitAbsolutePaths, fmt.Sprintf(defaultPerUIDPathFormat, os.Getuid())), nil
		}
	}

	runtimeDir := os.Getenv("XDG_RUNTIME_DIR")
	if runtimeDir != "" {
		
		
		_, err := os.Stat(runtimeDir)
		if os.IsNotExist(err) {
			
			
			
			return "", errors.Wrapf(err, "%q directory set by $XDG_RUNTIME_DIR does not exist. Either create the directory or unset $XDG_RUNTIME_DIR.", runtimeDir)
		} 
		return filepath.Join(runtimeDir, xdgRuntimeDirPath), nil
	}
	return fmt.Sprintf(defaultPerUIDPathFormat, os.Getuid()), nil
}
func getPathToAuth ( sys * types . SystemContext ) ( string , error ) { if sys != nil { if sys . AuthFilePath != " " { return sys . AuthFilePath , nil } if sys . RootForImplicitAbsolutePaths != " " { return filepath . Join ( sys . RootForImplicitAbsolutePaths , fmt . Sprintf ( defaultPerUIDPathFormat , os . Getuid ( ) ) ) , nil } } runtimeDir := os . Getenv ( " " ) if runtimeDir != " " { // This function does not in general need to separately check that the returned path exists; that’s racy, and callers will fail accessing the file anyway. // We are checking for os.IsNotExist here only to give the user better guidance what to do in this special case. _ , err := os . Stat ( runtimeDir ) if os . IsNotExist ( err ) { // This means the user set the XDG_RUNTIME_DIR variable and either forgot to create the directory // or made a typo while setting the environment variable, // so return an error referring to $XDG_RUNTIME_DIR instead of xdgRuntimeDirPath inside. return " " , errors . Wrapf ( err , " " , runtimeDir ) } // else ignore err and let the caller fail accessing xdgRuntimeDirPath. return filepath . Join ( runtimeDir , xdgRuntimeDirPath ) , nil } return fmt . Sprintf ( defaultPerUIDPathFormat , os . Getuid ( ) ) , nil }
// getPath gets the path of the auth.json file
// The path can be overriden by the user if the overwrite-path flag is set
// If the flag is not set and XDG_RUNTIME_DIR is set, the auth.json file is saved in XDG_RUNTIME_DIR/containers
// Otherwise, the auth.json file is stored in /run/containers/UID
getPath gets the path of the auth . json file The path can be overriden by the user if the overwrite - path flag is set If the flag is not set and XDG_RUNTIME_DIR is set the auth . json file is saved in XDG_RUNTIME_DIR / containers Otherwise the auth . json file is stored in / run / containers / UID