You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2020/11/05 22:54:07 UTC

[camel-k] 10/19: Remove workspace directory. Make maven directory temporary.

This is an automated email from the ASF dual-hosted git repository.

nferraro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit f0684ca3b9488a4da5ea6719eb3f79c73c110516
Author: Doru Bercea <gh...@ibm.com>
AuthorDate: Tue Oct 27 14:05:28 2020 -0400

    Remove workspace directory. Make maven directory temporary.
---
 pkg/cmd/inspect.go | 92 +++++++++++++++++++++---------------------------------
 1 file changed, 36 insertions(+), 56 deletions(-)

diff --git a/pkg/cmd/inspect.go b/pkg/cmd/inspect.go
index cbb823d..a4539ff 100644
--- a/pkg/cmd/inspect.go
+++ b/pkg/cmd/inspect.go
@@ -20,6 +20,7 @@ package cmd
 import (
 	"errors"
 	"fmt"
+	"io/ioutil"
 	"os"
 	"path"
 	"strings"
@@ -38,10 +39,7 @@ import (
 
 var acceptedDependencyTypes = []string{"bom", "camel", "camel-k", "camel-quarkus", "mvn", "github"}
 
-const (
-	defaultWorkspaceDirectoryName    = "workspace"
-	defaultDependenciesDirectoryName = "dependencies"
-)
+const defaultDependenciesDirectoryName = "dependencies"
 
 func newCmdInspect(rootCmdOptions *RootCmdOptions) (*cobra.Command, *inspectCmdOptions) {
 	options := inspectCmdOptions{
@@ -75,11 +73,10 @@ will be generated by calling Maven and then copied into the directory pointed to
 	}
 
 	cmd.Flags().Bool("all-dependencies", false, "Compute transitive dependencies and move them to directory pointed to by the --dependencies-directory flag.")
-	cmd.Flags().StringArrayP("additional-dependencies", "d", nil, `Comma-separated lists of additional top-level dependencies with the format:
+	cmd.Flags().StringArrayP("dependency", "d", nil, `Additional top-level dependency with the format:
 <type>:<dependency-name>
 where <type> is one of {`+strings.Join(acceptedDependencyTypes, "|")+`}.`)
-	cmd.Flags().String("workspace", "", "Workspace directory. Default: <kamel-invocation-directory>/workspace")
-	cmd.Flags().String("dependencies-directory", "", "Directory that will contain all the computed dependencies. Default: <kamel-invocation-directory>/<kamel-workspace-directory>/dependencies")
+	cmd.Flags().String("dependencies-directory", "", "Directory that will contain all the computed dependencies. Default: <kamel-invocation-directory>/dependencies")
 	cmd.Flags().StringP("output", "o", "", "Output format. One of: json|yaml")
 
 	return &cmd, &options
@@ -89,9 +86,8 @@ type inspectCmdOptions struct {
 	*RootCmdOptions
 	AllDependencies        bool     `mapstructure:"all-dependencies"`
 	OutputFormat           string   `mapstructure:"output"`
-	Workspace              string   `mapstructure:"workspace"`
 	DependenciesDirectory  string   `mapstructure:"dependencies-directory"`
-	AdditionalDependencies []string `mapstructure:"additional-dependencies"`
+	AdditionalDependencies []string `mapstructure:"dependencies"`
 }
 
 func (command *inspectCmdOptions) validate(args []string) error {
@@ -120,22 +116,19 @@ func (command *inspectCmdOptions) validate(args []string) error {
 	// a valid type.
 	if command.AdditionalDependencies != nil {
 		for _, additionalDependency := range command.AdditionalDependencies {
-			additionalDependencies := strings.Split(additionalDependency, ",")
-
-			for _, dependency := range additionalDependencies {
-				dependencyComponents := strings.Split(dependency, ":")
+			dependencyComponents := strings.Split(additionalDependency, ":")
 
-				TypeIsValid := false
-				for _, dependencyType := range acceptedDependencyTypes {
-					if dependencyType == dependencyComponents[0] {
-						TypeIsValid = true
-					}
+			TypeIsValid := false
+			for _, dependencyType := range acceptedDependencyTypes {
+				if dependencyType == dependencyComponents[0] {
+					TypeIsValid = true
 				}
+			}
 
-				if !TypeIsValid {
-					return errors.New("Unexpected type for user-provided dependency: " + dependency + ", check command usage for valid format.")
-				}
+			if !TypeIsValid {
+				return errors.New("Unexpected type for user-provided dependency: " + additionalDependency + ", check command usage for valid format.")
 			}
+
 		}
 	}
 
@@ -157,18 +150,11 @@ func (command *inspectCmdOptions) validate(args []string) error {
 }
 
 func (command *inspectCmdOptions) initialize(args []string) error {
-	// If --all-dependencies flag is set the workspace and dependencies directories need to have
-	// valid values. If not provided on the command line, the values need to be initialized with
-	// their default values.
+	// If --all-dependencies flag is set the dependencies directory needs to have a valid value.
+	// If not provided on the command line, the value needs to be initialized with the default.
 	if command.AllDependencies {
-		// Create workspace directory to hold all intermediate files.
-		err := createAndSetWorkspaceDirectory(command)
-		if err != nil {
-			return err
-		}
-
 		// Move the integration dependecies to the dependencies directory.
-		err = createAndSetDependenciesDirectory(command)
+		err := createAndSetDependenciesDirectory(command)
 		if err != nil {
 			return err
 		}
@@ -192,10 +178,8 @@ func (command *inspectCmdOptions) run(args []string) error {
 	// Add additional user-provided dependencies.
 	if command.AdditionalDependencies != nil {
 		for _, additionalDependency := range command.AdditionalDependencies {
-			additionalDependencies := strings.Split(additionalDependency, ",")
-			for _, dependency := range additionalDependencies {
-				dependencies = append(dependencies, dependency)
-			}
+			fmt.Printf(" Dep : %v \n", additionalDependency)
+			dependencies = append(dependencies, additionalDependency)
 		}
 	}
 
@@ -306,7 +290,12 @@ func getTransitiveDependencies(
 	}
 
 	// Create local Maven context.
-	mc := maven.NewContext(path.Join(command.Workspace, "maven"), project)
+	temporaryDirectory, err := ioutil.TempDir(os.TempDir(), "maven-")
+	if err != nil {
+		return err
+	}
+
+	mc := maven.NewContext(temporaryDirectory, project)
 	mc.LocalRepository = mvn.LocalRepository
 	mc.Timeout = mvn.GetTimeout().Duration
 
@@ -331,40 +320,31 @@ func getTransitiveDependencies(
 		}
 	}
 
+	defer os.RemoveAll(temporaryDirectory)
+
 	return nil
 }
 
-func createAndSetWorkspaceDirectory(command *inspectCmdOptions) error {
-	if command.Workspace == "" {
-		currentDirectory, err := os.Getwd()
-		if err != nil {
-			return err
-		}
-		command.Workspace = path.Join(currentDirectory, defaultWorkspaceDirectoryName)
-	}
-
-	// Create the workspace directory if it does not already exist.
-	err := util.CreateDirectory(command.Workspace)
+func getWorkingDirectory() (string, error) {
+	currentDirectory, err := os.Getwd()
 	if err != nil {
-		return err
+		return "", err
 	}
 
-	return nil
+	return currentDirectory, nil
 }
 
 func createAndSetDependenciesDirectory(command *inspectCmdOptions) error {
 	if command.DependenciesDirectory == "" {
-		if command.Workspace == "" {
-			err := createAndSetWorkspaceDirectory(command)
-			if err != nil {
-				return err
-			}
+		currentDirectory, err := getWorkingDirectory()
+		if err != nil {
+			return err
 		}
 
-		command.DependenciesDirectory = path.Join(command.Workspace, defaultDependenciesDirectoryName)
+		command.DependenciesDirectory = path.Join(currentDirectory, defaultDependenciesDirectoryName)
 	}
 
-	// Create the workspace directory if it does not already exist.
+	// Create the dependencies directory if it does not already exist.
 	err := util.CreateDirectory(command.DependenciesDirectory)
 	if err != nil {
 		return err