@@ -110,12 +110,13 @@ func (l *PluginWrapper) invokeAvailable(args []string) ([]*base.Package, error)
110110 Args : args ,
111111 }
112112 hookResult , err := l .impl .Available (& ctx )
113+ if l .isNoResultProvided (err ) {
114+ return []* base.Package {}, nil
115+ }
116+
113117 if err != nil {
114118 return nil , err
115119 }
116- if hookResult == nil {
117- return []* base.Package {}, nil
118- }
119120
120121 var result []* base.Package
121122 for _ , item := range hookResult {
@@ -200,12 +201,12 @@ func (l *PluginWrapper) PreInstall(version base.Version) (*base.Package, error)
200201 }
201202
202203 result , err := l .impl .PreInstall (& ctx )
204+ if l .isNoResultProvided (err ) {
205+ return & base.Package {}, nil
206+ }
203207 if err != nil {
204208 return nil , err
205209 }
206- if result == nil {
207- return & base.Package {}, nil
208- }
209210
210211 mainSdk , err := result .Info ()
211212 if err != nil {
@@ -264,12 +265,12 @@ func (l *PluginWrapper) EnvKeys(sdkPackage *base.Package) (*env.Envs, error) {
264265
265266 logger .Debugf ("EnvKeysHookCtx: %+v \n " , ctx )
266267 items , err := l .impl .EnvKeys (ctx )
268+ if l .isNoResultProvided (err ) {
269+ return nil , fmt .Errorf ("no environment variables provided" )
270+ }
267271 if err != nil {
268272 return nil , err
269273 }
270- if len (items ) == 0 {
271- return nil , fmt .Errorf ("no environment variables provided" )
272- }
273274
274275 envKeys := & env.Envs {
275276 Variables : make (env.Vars ),
@@ -312,6 +313,11 @@ func (l *PluginWrapper) PreUse(version base.Version, previousVersion base.Versio
312313 logger .Debugf ("PreUseHookCtx: %+v \n " , ctx )
313314
314315 result , err := l .impl .PreUse (& ctx )
316+
317+ if l .isNoResultProvided (err ) {
318+ return "" , nil
319+ }
320+
315321 if err != nil {
316322 return "" , err
317323 }
@@ -369,6 +375,10 @@ func (l *PluginWrapper) PreUninstall(p *base.Package) error {
369375 return l .impl .PreUninstall (ctx )
370376}
371377
378+ func (l * PluginWrapper ) isNoResultProvided (err error ) bool {
379+ return errors .Is (err , base .ErrNoResultProvide )
380+ }
381+
372382func IsLuaPluginDir (pluginDirPath string ) bool {
373383 metadataPath := filepath .Join (pluginDirPath , "metadata.lua" )
374384 if util .FileExists (metadataPath ) {
0 commit comments