From 8f2f1f8c1d5e408c7ac17348cd40d780d180e4aa Mon Sep 17 00:00:00 2001 From: boombuler Date: Sat, 1 Oct 2016 09:28:48 +0200 Subject: [PATCH] skip core dependencies if micro was build with an unknown version. --- cmd/micro/pluginmanager.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cmd/micro/pluginmanager.go b/cmd/micro/pluginmanager.go index 37a3a17d..bf51552d 100644 --- a/cmd/micro/pluginmanager.go +++ b/cmd/micro/pluginmanager.go @@ -174,8 +174,13 @@ func (pv *PluginVersion) UnmarshalJSON(data []byte) error { pv.Require = make(PluginDependencies, 0) for k, v := range values.Require { - if vRange, err := semver.ParseRange(v); err == nil { - pv.Require = append(pv.Require, &PluginDependency{k, vRange}) + // don't add the dependency if it's the core and + // we have a unknown version number. + // in that case just accept that dependency (which equals to not adding it.) + if k != CorePluginName || !isUnknownCoreVersion() { + if vRange, err := semver.ParseRange(v); err == nil { + pv.Require = append(pv.Require, &PluginDependency{k, vRange}) + } } } return nil @@ -318,6 +323,11 @@ pluginLoop: return } +func isUnknownCoreVersion() bool { + _, err := semver.ParseTolerant(Version) + return err != nil +} + func newStaticPluginVersion(name, version string) *PluginVersion { vers, err := semver.ParseTolerant(version)