func openDirect(ctx context.Context, configFile string, lc *LocalConfig, password string, options *Options) (rep Repository, err error) {
	if lc.Storage == nil {
		return nil, errors.Errorf("storage not set in the configuration file")
	}

	st, err := blob.NewStorage(ctx, *lc.Storage, false)
	if err != nil {
		return nil, errors.Wrap(err, "cannot open storage")
	}

	if options.TraceStorage {
		st = loggingwrapper.NewWrapper(st, log(ctx), "[STORAGE] ")
	}

	if lc.ReadOnly {
		st = readonly.NewWrapper(st)
	}

	r, err := openWithConfig(ctx, st, lc, password, options, lc.Caching, configFile)
	if err != nil {
		st.Close(ctx) //nolint:errcheck
		return nil, err
	}

	return r, nil
}
// openDirect opens the repository that directly manipulates blob storage..
openDirect opens the repository that directly manipulates blob storage
// openDirect opens the repository that directly manipulates blob storage ..
func openDirect(ctx context.Context, configFile string, lc *LocalConfig, password string, options *Options) (rep Repository, err error) {
	if lc.Storage == nil {
		return nil, errors.Errorf("storage not set in the configuration file")
	}
	st, err := blob.NewStorage(ctx, *lc.Storage, false)
	if err != nil {
		return nil, errors.Wrap(err, "cannot open storage")
	}
	if options.TraceStorage {
		st = loggingwrapper.NewWrapper(st, log(ctx), "[STORAGE] ")
	}
	if lc.ReadOnly {
		st = readonly.NewWrapper(st)
	}
	r, err := openWithConfig(ctx, st, lc, password, options, lc.Caching, configFile)
	if err != nil {
		st.Close(ctx) 
		return nil, err
	}
	return r, nil
}
func openDirect ( ctx context . Context , configFile string , lc * LocalConfig , password string , options * Options ) ( rep Repository , err error ) { if lc . Storage == nil { return nil , errors . Errorf ( " " ) } st , err := blob . NewStorage ( ctx , * lc . Storage , false ) if err != nil { return nil , errors . Wrap ( err , " " ) } if options . TraceStorage { st = loggingwrapper . NewWrapper ( st , log ( ctx ) , " " ) } if lc . ReadOnly { st = readonly . NewWrapper ( st ) } r , err := openWithConfig ( ctx , st , lc , password , options , lc . Caching , configFile ) if err != nil { st . Close ( ctx ) return nil , err } return r , nil }
openDirect opens the repository that directly manipulates blob storage
openDirect opens the repository that directly manipulates blob storage
//nolint:errcheck