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

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

commit d7e68a7175cfbfa9c6a22dd1c7504f2b750158ea
Author: Tadayoshi Sato <[email protected]>
AuthorDate: Thu Jul 28 15:35:34 2022 +0900

    chore(cli): further refactor kamel local cmds
---
 pkg/cmd/local.go                                   |   3 +-
 pkg/cmd/local_build.go                             |  37 +++---
 pkg/cmd/local_run.go                               |   6 +-
 pkg/cmd/local_util.go                              | 121 +++++++++++++++++-
 ...containerization.go => local_util_container.go} |  24 ++--
 pkg/util/util.go                                   | 141 ++-------------------
 6 files changed, 160 insertions(+), 172 deletions(-)

diff --git a/pkg/cmd/local.go b/pkg/cmd/local.go
index 1a480490f..65163bfa5 100644
--- a/pkg/cmd/local.go
+++ b/pkg/cmd/local.go
@@ -75,6 +75,7 @@ func (o *LocalCmdOptions) persistentPreRun(cmd 
*cobra.Command, args []string) er
 
 func warnTraitUsages(cmd *cobra.Command, traits []string) {
        if len(traits) > 0 {
-               fmt.Fprintf(cmd.OutOrStdout(), "Warning: traits are specified 
but don't take effect for local run: %v\n", traits)
+               fmt.Fprintf(cmd.OutOrStdout(),
+                       "Warning: traits are specified but don't take effect 
for local run: %v\n", traits)
        }
 }
diff --git a/pkg/cmd/local_build.go b/pkg/cmd/local_build.go
index 2bbb4b3f5..079bf0dc3 100644
--- a/pkg/cmd/local_build.go
+++ b/pkg/cmd/local_build.go
@@ -129,29 +129,27 @@ func (o *localBuildCmdOptions) validate(args []string) 
error {
 
 func (o *localBuildCmdOptions) init(args []string) error {
        // Create integration directory if one is provided.
-       err := util.CreateDirectory(o.IntegrationDirectory)
-       if err != nil {
-               return err
+       if o.IntegrationDirectory != "" {
+               if err := util.CreateDirectory(o.IntegrationDirectory); err != 
nil {
+                       return err
+               }
        }
 
        if o.BaseImage || o.Image != "" {
                // If base image construction is enabled create a directory for 
it.
-               err := createDockerBaseWorkingDirectory()
-               if err != nil {
+               if err := createDockerBaseWorkingDirectory(); err != nil {
                        return err
                }
 
                // If integration image construction is enabled, an integration 
image will be built.
                if o.Image != "" {
-                       err := createDockerWorkingDirectory()
-                       if err != nil {
+                       if err := createDockerWorkingDirectory(); err != nil {
                                return err
                        }
                }
        }
 
-       err = createMavenWorkingDirectory()
-       if err != nil {
+       if err := createMavenWorkingDirectory(); err != nil {
                return err
        }
 
@@ -178,13 +176,12 @@ func (o *localBuildCmdOptions) run(cmd *cobra.Command, 
args []string) error {
 
                dependenciesList = dependencies
                propertyFilesList = propertyFiles
-               hasIntegrationDir := o.IntegrationDirectory != ""
-               if hasIntegrationDir {
+               if o.IntegrationDirectory != "" {
                        // Create dependencies subdirectory.
                        localDependenciesDirectory := 
getCustomDependenciesDir(o.IntegrationDirectory)
 
                        // Copy dependencies in persistent 
IntegrationDirectory/dependencies
-                       dependenciesList, err = 
util.CopyIntegrationFilesToDirectory(dependencies, localDependenciesDirectory)
+                       dependenciesList, err = 
CopyIntegrationFilesToDirectory(dependencies, localDependenciesDirectory)
                        if err != nil {
                                return err
                        }
@@ -198,7 +195,7 @@ func (o *localBuildCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
                        localPropertiesDirectory := 
getCustomPropertiesDir(o.IntegrationDirectory)
 
                        // Copy dependencies in persistent 
IntegrationDirectory/dependencies
-                       propertyFilesList, err = 
util.CopyIntegrationFilesToDirectory(propertyFiles, localPropertiesDirectory)
+                       propertyFilesList, err = 
CopyIntegrationFilesToDirectory(propertyFiles, localPropertiesDirectory)
                        if err != nil {
                                return err
                        }
@@ -207,7 +204,7 @@ func (o *localBuildCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
                        localRoutesDirectory := 
getCustomRoutesDir(o.IntegrationDirectory)
 
                        // Copy routes in persistent 
IntegrationDirectory/dependencies
-                       routeFiles, err = 
util.CopyIntegrationFilesToDirectory(args, localRoutesDirectory)
+                       routeFiles, err = CopyIntegrationFilesToDirectory(args, 
localRoutesDirectory)
                        if err != nil {
                                return err
                        }
@@ -226,7 +223,8 @@ func (o *localBuildCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
 
        // Create and build integration image.
        err := createAndBuildIntegrationImage(o.Context, o.ContainerRegistry, 
o.BaseImage,
-               o.Image, propertyFilesList, dependenciesList, routeFiles, 
false, cmd.OutOrStdout(), cmd.ErrOrStderr())
+               o.Image, propertyFilesList, dependenciesList, routeFiles, false,
+               cmd.OutOrStdout(), cmd.ErrOrStderr())
        if err != nil {
                return err
        }
@@ -236,19 +234,16 @@ func (o *localBuildCmdOptions) run(cmd *cobra.Command, 
args []string) error {
 
 func (o *localBuildCmdOptions) deinit() error {
        // If base image construction is enabled delete the directory for it.
-       err := deleteDockerBaseWorkingDirectory()
-       if err != nil {
+       if err := deleteDockerBaseWorkingDirectory(); err != nil {
                return err
        }
 
        // If integration files are provided delete the maven project folder.
        if !o.BaseImage {
-               err = deleteDockerWorkingDirectory()
-               if err != nil {
+               if err := deleteDockerWorkingDirectory(); err != nil {
                        return err
                }
-               err = deleteMavenWorkingDirectory()
-               if err != nil {
+               if err := deleteMavenWorkingDirectory(); err != nil {
                        return err
                }
        }
diff --git a/pkg/cmd/local_run.go b/pkg/cmd/local_run.go
index 024a361a3..ad6f77ce3 100644
--- a/pkg/cmd/local_run.go
+++ b/pkg/cmd/local_run.go
@@ -171,7 +171,7 @@ func (o *localRunCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
                // <integration_directory>/../quarkus/quarkus-application.dat
                // <integration_directory>/../quarkus/generated-bytecode.jar
                localQuarkusDir := getCustomQuarkusDir(o.IntegrationDirectory)
-               err = util.CopyQuarkusAppFiles(localDependenciesDirectory, 
localQuarkusDir)
+               err = CopyQuarkusAppFiles(localDependenciesDirectory, 
localQuarkusDir)
                if err != nil {
                        return err
                }
@@ -179,7 +179,7 @@ func (o *localRunCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
                // The dependency jar files need to be at a specific location 
i.e.:
                // <integration_directory>/../lib/main/*.jar
                localLibDirectory := getCustomLibDir(o.IntegrationDirectory)
-               err = util.CopyLibFiles(localDependenciesDirectory, 
localLibDirectory)
+               err = CopyLibFiles(localDependenciesDirectory, 
localLibDirectory)
                if err != nil {
                        return err
                }
@@ -187,7 +187,7 @@ func (o *localRunCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
                // The Camel K jar file needs to be at a specific location i.e.:
                // 
<integration_directory>/../app/camel-k-integration-X.X.X{-SNAPSHOT}.jar
                localAppDirectory := getCustomAppDir(o.IntegrationDirectory)
-               err = util.CopyAppFile(localDependenciesDirectory, 
localAppDirectory)
+               err = CopyAppFile(localDependenciesDirectory, localAppDirectory)
                if err != nil {
                        return err
                }
diff --git a/pkg/cmd/local_util.go b/pkg/cmd/local_util.go
index 75837d85f..3ecd9adc7 100644
--- a/pkg/cmd/local_util.go
+++ b/pkg/cmd/local_util.go
@@ -427,7 +427,7 @@ func updateQuarkusDirectory() error {
        }
 
        // ignore error if custom dir doesn't exist
-       _ = util.CopyQuarkusAppFiles(util.CustomQuarkusDirectoryName, 
util.GetLocalQuarkusDir())
+       _ = CopyQuarkusAppFiles(util.CustomQuarkusDirectoryName, 
util.GetLocalQuarkusDir())
 
        return nil
 }
@@ -439,7 +439,7 @@ func updateAppDirectory() error {
        }
 
        // ignore error if custom dir doesn't exist
-       _ = util.CopyAppFile(util.CustomAppDirectoryName, util.GetLocalAppDir())
+       _ = CopyAppFile(util.CustomAppDirectoryName, util.GetLocalAppDir())
 
        return nil
 }
@@ -451,7 +451,7 @@ func updateLibDirectory() error {
        }
 
        // ignore error if custom dir doesn't exist
-       _ = util.CopyLibFiles(util.CustomLibDirectoryName, 
util.GetLocalLibDir())
+       _ = CopyLibFiles(util.CustomLibDirectoryName, util.GetLocalLibDir())
 
        return nil
 }
@@ -517,3 +517,118 @@ func deleteLocalIntegrationDirs(integrationDirectory 
string) error {
 
        return nil
 }
+
+func CopyIntegrationFilesToDirectory(files []string, directory string) 
([]string, error) {
+       // Create directory if one does not already exist
+       if err := util.CreateDirectory(directory); err != nil {
+               return nil, err
+       }
+
+       // Copy files to new location. Also create the list with relocated 
files.
+       relocatedFilesList := []string{}
+       for _, filePath := range files {
+               newFilePath := path.Join(directory, path.Base(filePath))
+               _, err := util.CopyFile(filePath, newFilePath)
+               if err != nil {
+                       return relocatedFilesList, err
+               }
+               relocatedFilesList = append(relocatedFilesList, newFilePath)
+       }
+
+       return relocatedFilesList, nil
+}
+
+func CopyQuarkusAppFiles(localDependenciesDirectory string, localQuarkusDir 
string) error {
+       // Create directory if one does not already exist
+       err := util.CreateDirectory(localQuarkusDir)
+       if err != nil {
+               return err
+       }
+
+       // Transfer all files with a .dat extension and all files with a 
*-bytecode.jar suffix.
+       files, err := getRegularFileNamesInDir(localDependenciesDirectory)
+       if err != nil {
+               return err
+       }
+       for _, file := range files {
+               if strings.HasSuffix(file, ".dat") || strings.HasSuffix(file, 
"-bytecode.jar") {
+                       source := path.Join(localDependenciesDirectory, file)
+                       destination := path.Join(localQuarkusDir, file)
+                       _, err = util.CopyFile(source, destination)
+                       if err != nil {
+                               return err
+                       }
+               }
+       }
+
+       return nil
+}
+
+func CopyLibFiles(localDependenciesDirectory string, localLibDirectory string) 
error {
+       // Create directory if one does not already exist
+       err := util.CreateDirectory(localLibDirectory)
+       if err != nil {
+               return err
+       }
+
+       fileNames, err := getRegularFileNamesInDir(localDependenciesDirectory)
+       if err != nil {
+               return err
+       }
+
+       for _, dependencyJar := range fileNames {
+               source := path.Join(localDependenciesDirectory, dependencyJar)
+               destination := path.Join(localLibDirectory, dependencyJar)
+               _, err = util.CopyFile(source, destination)
+               if err != nil {
+                       return err
+               }
+       }
+
+       return nil
+}
+
+func CopyAppFile(localDependenciesDirectory string, localAppDirectory string) 
error {
+       // Create directory if one does not already exist
+       err := util.CreateDirectory(localAppDirectory)
+       if err != nil {
+               return err
+       }
+
+       fileNames, err := getRegularFileNamesInDir(localDependenciesDirectory)
+       if err != nil {
+               return err
+       }
+
+       for _, dependencyJar := range fileNames {
+               if strings.HasPrefix(dependencyJar, "camel-k-integration-") {
+                       source := path.Join(localDependenciesDirectory, 
dependencyJar)
+                       destination := path.Join(localAppDirectory, 
dependencyJar)
+                       _, err = util.CopyFile(source, destination)
+                       if err != nil {
+                               return err
+                       }
+               }
+       }
+
+       return nil
+}
+
+func getRegularFileNamesInDir(directory string) ([]string, error) {
+       var dirFiles []string
+       files, err := ioutil.ReadDir(directory)
+       for _, file := range files {
+               fileName := file.Name()
+
+               // Do not include hidden files or sub-directories.
+               if !file.IsDir() && !strings.HasPrefix(fileName, ".") {
+                       dirFiles = append(dirFiles, fileName)
+               }
+       }
+
+       if err != nil {
+               return nil, err
+       }
+
+       return dirFiles, nil
+}
diff --git a/pkg/cmd/util_containerization.go b/pkg/cmd/local_util_container.go
similarity index 92%
rename from pkg/cmd/util_containerization.go
rename to pkg/cmd/local_util_container.go
index ec1c2e932..64e9dd886 100644
--- a/pkg/cmd/util_containerization.go
+++ b/pkg/cmd/local_util_container.go
@@ -85,8 +85,7 @@ func setDockerEnvVars(envVars []string) {
 
 func createAndBuildBaseImage(ctx context.Context, stdout, stderr io.Writer) 
error {
        // Create the base image Docker file.
-       err := docker.CreateBaseImageDockerFile()
-       if err != nil {
+       if err := docker.CreateBaseImageDockerFile(); err != nil {
                return err
        }
 
@@ -130,8 +129,7 @@ func createAndBuildIntegrationImage(ctx context.Context, 
containerRegistry strin
        }
 
        // Create the Dockerfile and build the base image.
-       err := createAndBuildBaseImage(ctx, stdout, stderr)
-       if err != nil {
+       if err := createAndBuildBaseImage(ctx, stdout, stderr); err != nil {
                return err
        }
 
@@ -145,32 +143,27 @@ func createAndBuildIntegrationImage(ctx context.Context, 
containerRegistry strin
 
        // Create integration image if integration files were provided.
        // Copy dependencies to a dependencies folder under a local directory.
-       err = updateIntegrationDependencies(dependencies)
-       if err != nil {
+       if err := updateIntegrationDependencies(dependencies); err != nil {
                return err
        }
 
        // Copy routes to a routes folder under a local directory.
-       err = updateIntegrationRoutes(routes)
-       if err != nil {
+       if err := updateIntegrationRoutes(routes); err != nil {
                return err
        }
 
        // Copy quarkus files in maven subdirectory
-       err = updateQuarkusDirectory()
-       if err != nil {
+       if err := updateQuarkusDirectory(); err != nil {
                return err
        }
 
        // Copy app files in maven subdirectory
-       err = updateAppDirectory()
-       if err != nil {
+       if err := updateAppDirectory(); err != nil {
                return err
        }
 
        // Copy lib files in maven subdirectory
-       err = updateLibDirectory()
-       if err != nil {
+       if err := updateLibDirectory(); err != nil {
                return err
        }
 
@@ -182,8 +175,7 @@ func createAndBuildIntegrationImage(ctx context.Context, 
containerRegistry strin
        }
 
        // Create the integration image Docker file.
-       err = docker.CreateIntegrationImageDockerFile(containerCmd, 
startsFromLocalFolder)
-       if err != nil {
+       if err := docker.CreateIntegrationImageDockerFile(containerCmd, 
startsFromLocalFolder); err != nil {
                return err
        }
 
diff --git a/pkg/util/util.go b/pkg/util/util.go
index c68f27717..45e02c0b9 100644
--- a/pkg/util/util.go
+++ b/pkg/util/util.go
@@ -368,20 +368,21 @@ func DirectoryEmpty(directory string) (bool, error) {
        return ok, err
 }
 
+// CreateDirectory creates a directory if it does not exist.
 func CreateDirectory(directory string) error {
-       if directory != "" {
-               // If directory does not exist, create it
-               directoryExists, err := DirectoryExists(directory)
-               if err != nil {
-                       return err
-               }
+       if directory == "" {
+               return errors.New("directory name must not be empty")
+       }
 
-               if !directoryExists {
-                       // #nosec G301
-                       err := os.MkdirAll(directory, 0o755)
-                       if err != nil {
-                               return err
-                       }
+       directoryExists, err := DirectoryExists(directory)
+       if err != nil {
+               return err
+       }
+
+       if !directoryExists {
+               // #nosec G301
+               if err := os.MkdirAll(directory, 0o755); err != nil {
+                       return err
                }
        }
 
@@ -682,122 +683,6 @@ func EvaluateCLIAndLazyEnvVars() ([]string, error) {
        return evaluatedEnvVars, nil
 }
 
-func CopyIntegrationFilesToDirectory(files []string, directory string) 
([]string, error) {
-       // Create directory if one does not already exist
-       err := CreateDirectory(directory)
-       if err != nil {
-               return nil, err
-       }
-
-       // Copy files to new location. Also create the list with relocated 
files.
-       relocatedFilesList := []string{}
-       for _, filePath := range files {
-               newFilePath := path.Join(directory, path.Base(filePath))
-               _, err := CopyFile(filePath, newFilePath)
-               if err != nil {
-                       return relocatedFilesList, err
-               }
-               relocatedFilesList = append(relocatedFilesList, newFilePath)
-       }
-
-       return relocatedFilesList, nil
-}
-
-func CopyQuarkusAppFiles(localDependenciesDirectory string, localQuarkusDir 
string) error {
-       // Create directory if one does not already exist
-       err := CreateDirectory(localQuarkusDir)
-       if err != nil {
-               return err
-       }
-
-       // Transfer all files with a .dat extension and all files with a 
*-bytecode.jar suffix.
-       files, err := getRegularFileNamesInDir(localDependenciesDirectory)
-       if err != nil {
-               return err
-       }
-       for _, file := range files {
-               if strings.HasSuffix(file, ".dat") || strings.HasSuffix(file, 
"-bytecode.jar") {
-                       source := path.Join(localDependenciesDirectory, file)
-                       destination := path.Join(localQuarkusDir, file)
-                       _, err = CopyFile(source, destination)
-                       if err != nil {
-                               return err
-                       }
-               }
-       }
-
-       return nil
-}
-
-func getRegularFileNamesInDir(directory string) ([]string, error) {
-       var dirFiles []string
-       files, err := ioutil.ReadDir(directory)
-       for _, file := range files {
-               fileName := file.Name()
-
-               // Do not include hidden files or sub-directories.
-               if !file.IsDir() && !strings.HasPrefix(fileName, ".") {
-                       dirFiles = append(dirFiles, fileName)
-               }
-       }
-
-       if err != nil {
-               return nil, err
-       }
-
-       return dirFiles, nil
-}
-
-func CopyLibFiles(localDependenciesDirectory string, localLibDirectory string) 
error {
-       // Create directory if one does not already exist
-       err := CreateDirectory(localLibDirectory)
-       if err != nil {
-               return err
-       }
-
-       fileNames, err := getRegularFileNamesInDir(localDependenciesDirectory)
-       if err != nil {
-               return err
-       }
-
-       for _, dependencyJar := range fileNames {
-               source := path.Join(localDependenciesDirectory, dependencyJar)
-               destination := path.Join(localLibDirectory, dependencyJar)
-               _, err = CopyFile(source, destination)
-               if err != nil {
-                       return err
-               }
-       }
-
-       return nil
-}
-
-func CopyAppFile(localDependenciesDirectory string, localAppDirectory string) 
error {
-       // Create directory if one does not already exist
-       err := CreateDirectory(localAppDirectory)
-       if err != nil {
-               return err
-       }
-
-       fileNames, err := getRegularFileNamesInDir(localDependenciesDirectory)
-       if err != nil {
-               return err
-       }
-
-       for _, dependencyJar := range fileNames {
-               if strings.HasPrefix(dependencyJar, "camel-k-integration-") {
-                       source := path.Join(localDependenciesDirectory, 
dependencyJar)
-                       destination := path.Join(localAppDirectory, 
dependencyJar)
-                       _, err = CopyFile(source, destination)
-                       if err != nil {
-                               return err
-                       }
-               }
-       }
-
-       return nil
-}
-
 // Open a safe wrapper of os.Open.
 func Open(name string) (*os.File, error) {
        return os.Open(filepath.Clean(name))

Reply via email to