diff --git a/pkg/plugin/installer/installer.go b/pkg/plugin/installer/installer.go index 10433f4cd..02aee9f46 100644 --- a/pkg/plugin/installer/installer.go +++ b/pkg/plugin/installer/installer.go @@ -21,9 +21,9 @@ import ( "os" "path" "path/filepath" + "strings" "k8s.io/helm/pkg/helm/helmpath" - "strings" ) // ErrMissingMetadata indicates that plugin.yaml is missing. diff --git a/pkg/plugin/installer/local_installer.go b/pkg/plugin/installer/local_installer.go index 18011f8de..3cf6bb422 100644 --- a/pkg/plugin/installer/local_installer.go +++ b/pkg/plugin/installer/local_installer.go @@ -16,6 +16,7 @@ limitations under the License. package installer // import "k8s.io/helm/pkg/plugin/installer" import ( + "fmt" "path/filepath" "k8s.io/helm/pkg/helm/helmpath" @@ -28,8 +29,12 @@ type LocalInstaller struct { // NewLocalInstaller creates a new LocalInstaller. func NewLocalInstaller(source string, home helmpath.Home) (*LocalInstaller, error) { + src, err := filepath.Abs(source) + if err != nil { + return nil, fmt.Errorf("unable to get absolute path to plugin: %v", err) + } i := &LocalInstaller{ - base: newBase(source, home), + base: newBase(src, home), } return i, nil } @@ -41,11 +46,7 @@ func (i *LocalInstaller) Install() error { if !isPlugin(i.Source) { return ErrMissingMetadata } - src, err := filepath.Abs(i.Source) - if err != nil { - return err - } - return i.link(src) + return i.link(i.Source) } // Update updates a local repository