func (cmd *PluginInstall) installPlugin(pluginMetadata *plugin.PluginMetadata, pluginDestinationFilepath, pluginSourceFilepath string) { err := fileutils.CopyFile(pluginDestinationFilepath, pluginSourceFilepath) if err != nil { cmd.ui.Failed(fmt.Sprintf(T("Could not copy plugin binary: \n{{.Error}}", map[string]interface{}{"Error": err.Error()}))) } configMetadata := plugin_config.PluginMetadata{ Location: pluginDestinationFilepath, Version: pluginMetadata.Version, Commands: pluginMetadata.Commands, } cmd.pluginConfig.SetPlugin(pluginMetadata.Name, configMetadata) }
BeforeEach(func() { ui = &testterm.FakeUI{} requirementsFactory = &testreq.FakeReqFactory{} var err error fakePluginRepoDir, err = ioutil.TempDir(os.TempDir(), "plugins") Expect(err).ToNot(HaveOccurred()) fixtureDir := filepath.Join("..", "..", "..", "fixtures", "plugins") pluginDir = filepath.Join(fakePluginRepoDir, ".cf", "plugins") err = os.MkdirAll(pluginDir, 0700) Expect(err).NotTo(HaveOccurred()) fileutils.CopyFile(filepath.Join(pluginDir, "test_1.exe"), filepath.Join(fixtureDir, "test_1.exe")) fileutils.CopyFile(filepath.Join(pluginDir, "test_2.exe"), filepath.Join(fixtureDir, "test_2.exe")) config_helpers.PluginRepoDir = func() string { return fakePluginRepoDir } pluginConfig = plugin_config.NewPluginConfig(func(err error) { Expect(err).ToNot(HaveOccurred()) }) pluginConfig.SetPlugin("test_1.exe", plugin_config.PluginMetadata{Location: filepath.Join(pluginDir, "test_1.exe")}) pluginConfig.SetPlugin("test_2.exe", plugin_config.PluginMetadata{Location: filepath.Join(pluginDir, "test_2.exe")}) }) AfterEach(func() { os.Remove(fakePluginRepoDir) })