Add property option to local create.
diff --git a/pkg/cmd/local_create.go b/pkg/cmd/local_create.go
index b30db2f..900b3dd 100644
--- a/pkg/cmd/local_create.go
+++ b/pkg/cmd/local_create.go
@@ -58,6 +58,7 @@
cmd.Flags().Bool("base-image", false, "Create base image used as a starting point for any integration.")
cmd.Flags().String("docker-registry", "", "Docker registry to store intermediate images.")
cmd.Flags().StringArray("property-file", nil, "Add a property file to the integration.")
+ cmd.Flags().StringArrayP("property", "p", nil, "Add a Camel property to the integration.")
cmd.Flags().StringArrayP("dependency", "d", nil, "Add an additional dependency")
return &cmd, &options
@@ -68,6 +69,7 @@
BaseImage bool `mapstructure:"base-image"`
DockerRegistry string `mapstructure:"docker-registry"`
AdditionalDependencies []string `mapstructure:"dependencies"`
+ Properties []string `mapstructure:"properties"`
PropertyFiles []string `mapstructure:"property-files"`
}
@@ -136,6 +138,15 @@
// Create integration image if integration files were provided.
if len(args) > 0 {
+ // Manage integration properties which may come from files or CLI.
+ propertyFiles, err := updateIntegrationProperties(command.Properties, command.PropertyFiles)
+ if err != nil {
+ return nil
+ }
+
+ // Update property files with relocated files.
+ command.PropertyFiles = propertyFiles
+
// Fetch dependencies.
dependencies, err := getDependencies(args, command.AdditionalDependencies, true)
if err != nil {
diff --git a/pkg/cmd/local_run.go b/pkg/cmd/local_run.go
index ab2acc8..aac54b8 100644
--- a/pkg/cmd/local_run.go
+++ b/pkg/cmd/local_run.go
@@ -112,11 +112,14 @@
}
// Manage integration properties which may come from files or CLI.
- err = updateIntegrationProperties(command)
+ propertyFiles, err := updateIntegrationProperties(command.Properties, command.PropertyFiles)
if err != nil {
return nil
}
+ // Update property files with relocated files.
+ command.PropertyFiles = propertyFiles
+
// Run integration inside a local container.
if command.Containerize {
// Get base image name.
diff --git a/pkg/cmd/util_dependencies.go b/pkg/cmd/util_dependencies.go
index 37f7bc0..b4361ed 100644
--- a/pkg/cmd/util_dependencies.go
+++ b/pkg/cmd/util_dependencies.go
@@ -336,36 +336,34 @@
return nil
}
-func updateIntegrationProperties(command *localRunCmdOptions) error {
+func updateIntegrationProperties(properties []string, propertyFiles []string) ([]string, error) {
// Create properties directory under Maven working directory. This ensures that
// property files of different integrations do not clash.
err := createPropertiesDirectory()
if err != nil {
- return err
+ return nil, err
}
// Relocate properties files to this integration's property directory.
relocatedPropertyFiles := []string{}
- for _, propertyFile := range command.PropertyFiles {
+ for _, propertyFile := range propertyFiles {
relocatedPropertyFile := path.Join(getPropertiesDir(), path.Base(propertyFile))
util.CopyFile(propertyFile, relocatedPropertyFile)
relocatedPropertyFiles = append(relocatedPropertyFiles, relocatedPropertyFile)
}
// Output list of properties to property file if any CLI properties were given.
- if len(command.Properties) > 0 {
+ if len(properties) > 0 {
propertyFilePath := path.Join(getPropertiesDir(), "CLI.properties")
- err = ioutil.WriteFile(propertyFilePath, []byte(strings.Join(command.Properties, "\n")), 0777)
+ err = ioutil.WriteFile(propertyFilePath, []byte(strings.Join(properties, "\n")), 0777)
if err != nil {
- return err
+ return nil, err
}
relocatedPropertyFiles = append(relocatedPropertyFiles, propertyFilePath)
}
- // Update command PropertyFiles.
- command.PropertyFiles = relocatedPropertyFiles
-
- return nil
+ // Return relocated PropertyFiles.
+ return relocatedPropertyFiles, nil
}
func createMavenWorkingDirectory() error {