diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/admin/PublishBomCommand.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/admin/PublishBomCommand.java index 30927ae4a4..5b86af143f 100644 --- a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/admin/PublishBomCommand.java +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/admin/PublishBomCommand.java @@ -20,6 +20,7 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.netflix.spinnaker.halyard.cli.command.v1.NestableCommand; +import com.netflix.spinnaker.halyard.cli.command.v1.converter.PathExpandingConverter; import com.netflix.spinnaker.halyard.cli.services.v1.Daemon; import com.netflix.spinnaker.halyard.cli.ui.v1.AnsiUi; import lombok.AccessLevel; @@ -38,6 +39,7 @@ public class PublishBomCommand extends NestableCommand { @Parameter( names = "--bom-path", + converter = PathExpandingConverter.class, required = true, description = "The path to the BOM owning the artifact to publish." ) diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/admin/PublishProfileCommand.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/admin/PublishProfileCommand.java index 20e8580725..b4a4b347bd 100644 --- a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/admin/PublishProfileCommand.java +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/admin/PublishProfileCommand.java @@ -20,6 +20,7 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.netflix.spinnaker.halyard.cli.command.v1.NestableCommand; +import com.netflix.spinnaker.halyard.cli.command.v1.converter.PathExpandingConverter; import com.netflix.spinnaker.halyard.cli.services.v1.Daemon; import com.netflix.spinnaker.halyard.cli.ui.v1.AnsiUi; import lombok.AccessLevel; @@ -38,6 +39,7 @@ public class PublishProfileCommand extends NestableCommand { @Parameter( names = "--bom-path", + converter = PathExpandingConverter.class, required = true, description = "The path to the BOM owning the artifact to publish." ) @@ -45,6 +47,7 @@ public class PublishProfileCommand extends NestableCommand { @Parameter( names = "--profile-path", + converter = PathExpandingConverter.class, required = true, description = "The path to the artifact profile to publish." ) diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/appengine/AppengineAddAccountCommand.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/appengine/AppengineAddAccountCommand.java index 6de27c4eef..536067845f 100644 --- a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/appengine/AppengineAddAccountCommand.java +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/appengine/AppengineAddAccountCommand.java @@ -20,6 +20,7 @@ import com.beust.jcommander.Parameters; import com.netflix.spinnaker.halyard.cli.command.v1.config.providers.account.AbstractAddAccountCommand; import com.netflix.spinnaker.halyard.cli.command.v1.config.providers.google.CommonGoogleCommandProperties; +import com.netflix.spinnaker.halyard.cli.command.v1.converter.PathExpandingConverter; import com.netflix.spinnaker.halyard.config.model.v1.node.Account; import com.netflix.spinnaker.halyard.config.model.v1.providers.appengine.AppengineAccount; @@ -38,6 +39,7 @@ protected String getProviderName() { @Parameter( names = "--json-path", + converter = PathExpandingConverter.class, description = CommonGoogleCommandProperties.JSON_PATH_DESCRIPTION ) private String jsonPath; @@ -70,6 +72,7 @@ protected String getProviderName() { @Parameter( names = "--ssh-private-key-file-path", + converter = PathExpandingConverter.class, description = AppengineCommandProperties.SSH_PRIVATE_KEY_FILE_PATH ) private String sshPrivateKeyFilePath; diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/appengine/AppengineEditAccountCommand.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/appengine/AppengineEditAccountCommand.java index e60a9d1e99..9a703cae4f 100644 --- a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/appengine/AppengineEditAccountCommand.java +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/appengine/AppengineEditAccountCommand.java @@ -19,6 +19,7 @@ import com.beust.jcommander.Parameter; import com.netflix.spinnaker.halyard.cli.command.v1.config.providers.account.AbstractEditAccountCommand; import com.netflix.spinnaker.halyard.cli.command.v1.config.providers.google.CommonGoogleCommandProperties; +import com.netflix.spinnaker.halyard.cli.command.v1.converter.PathExpandingConverter; import com.netflix.spinnaker.halyard.config.model.v1.node.Account; import com.netflix.spinnaker.halyard.config.model.v1.providers.appengine.AppengineAccount; @@ -36,6 +37,7 @@ protected String getProviderName() { @Parameter( names = "--json-path", + converter = PathExpandingConverter.class, description = CommonGoogleCommandProperties.JSON_PATH_DESCRIPTION ) private String jsonPath; @@ -68,6 +70,7 @@ protected String getProviderName() { @Parameter( names = "--ssh-private-key-file-path", + converter = PathExpandingConverter.class, description = AppengineCommandProperties.SSH_PRIVATE_KEY_FILE_PATH ) private String sshPrivateKeyFilePath; diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/dockerRegistry/DockerRegistryAddAccountCommand.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/dockerRegistry/DockerRegistryAddAccountCommand.java index ecc7a2cd6d..a0fdde659a 100644 --- a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/dockerRegistry/DockerRegistryAddAccountCommand.java +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/dockerRegistry/DockerRegistryAddAccountCommand.java @@ -19,6 +19,7 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.netflix.spinnaker.halyard.cli.command.v1.config.providers.account.AbstractAddAccountCommand; +import com.netflix.spinnaker.halyard.cli.command.v1.converter.PathExpandingConverter; import com.netflix.spinnaker.halyard.config.model.v1.node.Account; import com.netflix.spinnaker.halyard.config.model.v1.providers.dockerRegistry.DockerRegistryAccount; import java.util.ArrayList; @@ -53,6 +54,7 @@ protected String getProviderName() { @Parameter( names = "--password-file", + converter = PathExpandingConverter.class, description = DockerRegistryCommandProperties.PASSWORD_FILE_DESCRIPTION ) private String passwordFile; diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/dockerRegistry/DockerRegistryEditAccountCommand.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/dockerRegistry/DockerRegistryEditAccountCommand.java index e7a43c59a9..5e90e16091 100644 --- a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/dockerRegistry/DockerRegistryEditAccountCommand.java +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/dockerRegistry/DockerRegistryEditAccountCommand.java @@ -18,6 +18,7 @@ import com.beust.jcommander.Parameter; import com.netflix.spinnaker.halyard.cli.command.v1.config.providers.account.AbstractEditAccountCommand; +import com.netflix.spinnaker.halyard.cli.command.v1.converter.PathExpandingConverter; import com.netflix.spinnaker.halyard.config.model.v1.node.Account; import com.netflix.spinnaker.halyard.config.model.v1.providers.dockerRegistry.DockerRegistryAccount; import java.util.ArrayList; @@ -62,6 +63,7 @@ protected String getProviderName() { @Parameter( names = "--password-file", + converter = PathExpandingConverter.class, description = DockerRegistryCommandProperties.PASSWORD_FILE_DESCRIPTION ) private String passwordFile; diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/google/GoogleAddAccountCommand.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/google/GoogleAddAccountCommand.java index 4d37f79499..bd778224c5 100644 --- a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/google/GoogleAddAccountCommand.java +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/google/GoogleAddAccountCommand.java @@ -19,6 +19,7 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.netflix.spinnaker.halyard.cli.command.v1.config.providers.account.AbstractAddAccountCommand; +import com.netflix.spinnaker.halyard.cli.command.v1.converter.PathExpandingConverter; import com.netflix.spinnaker.halyard.config.model.v1.node.Account; import com.netflix.spinnaker.halyard.config.model.v1.providers.google.GoogleAccount; import java.util.ArrayList; @@ -39,6 +40,7 @@ protected String getProviderName() { @Parameter( names = "--json-path", + converter = PathExpandingConverter.class, description = CommonGoogleCommandProperties.JSON_PATH_DESCRIPTION ) private String jsonPath; diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/google/GoogleEditAccountCommand.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/google/GoogleEditAccountCommand.java index 29f731ab61..6a1a50a6b9 100644 --- a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/google/GoogleEditAccountCommand.java +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/config/providers/google/GoogleEditAccountCommand.java @@ -18,6 +18,7 @@ import com.beust.jcommander.Parameter; import com.netflix.spinnaker.halyard.cli.command.v1.config.providers.account.AbstractEditAccountCommand; +import com.netflix.spinnaker.halyard.cli.command.v1.converter.PathExpandingConverter; import com.netflix.spinnaker.halyard.config.model.v1.node.Account; import com.netflix.spinnaker.halyard.config.model.v1.providers.google.GoogleAccount; import java.util.ArrayList; @@ -37,6 +38,7 @@ protected String getProviderName() { @Parameter( names = "--json-path", + converter = PathExpandingConverter.class, description = CommonGoogleCommandProperties.JSON_PATH_DESCRIPTION ) private String jsonPath; diff --git a/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/converter/PathExpandingConverter.java b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/converter/PathExpandingConverter.java new file mode 100644 index 0000000000..b1fa31c5a6 --- /dev/null +++ b/halyard-cli/src/main/java/com/netflix/spinnaker/halyard/cli/command/v1/converter/PathExpandingConverter.java @@ -0,0 +1,29 @@ +/* + * Copyright 2017 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License") + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.netflix.spinnaker.halyard.cli.command.v1.converter; + +import com.beust.jcommander.IStringConverter; + +import java.io.File; + +public class PathExpandingConverter implements IStringConverter { + @Override + public String convert(String value) { + return new File(value).getAbsolutePath(); + } +}