You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sd...@apache.org on 2022/08/18 23:47:32 UTC
[ignite-3] branch main updated: IGNITE-17529 Override CLI config file path via environment variable (#1010)
This is an automated email from the ASF dual-hosted git repository.
sdanilov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new 83e4a2e1f5 IGNITE-17529 Override CLI config file path via environment variable (#1010)
83e4a2e1f5 is described below
commit 83e4a2e1f5fab5313ddfe5ea21fd781ecc1da2e6
Author: Vadim Pakhnushev <86...@users.noreply.github.com>
AuthorDate: Fri Aug 19 02:47:28 2022 +0300
IGNITE-17529 Override CLI config file path via environment variable (#1010)
---
.../apache/ignite/cli/config/ConfigConstants.java | 46 +++++++++++++++++++++-
1 file changed, 44 insertions(+), 2 deletions(-)
diff --git a/modules/cli/src/main/java/org/apache/ignite/cli/config/ConfigConstants.java b/modules/cli/src/main/java/org/apache/ignite/cli/config/ConfigConstants.java
index cf8912157f..976a06c63c 100644
--- a/modules/cli/src/main/java/org/apache/ignite/cli/config/ConfigConstants.java
+++ b/modules/cli/src/main/java/org/apache/ignite/cli/config/ConfigConstants.java
@@ -24,21 +24,63 @@ import java.nio.file.Path;
* Util class for config CLI.
*/
public final class ConfigConstants {
+ /**
+ * Environment variable which points to the base directory for configuration files according to XDG spec.
+ */
private static final String XDG_CONFIG_HOME = "XDG_CONFIG_HOME";
+
+ /**
+ * Subdirectory name under the base configuration directory for ignite configuration files.
+ */
private static final String PARENT_FOLDER_NAME = "ignitecli";
+
+ /**
+ * Main configuration file name.
+ */
private static final String CONFIG_FILE_NAME = "defaults";
+ /**
+ * Environment variable which points to the configuration file.
+ */
+ private static final String IGNITE_CLI_CONFIG_FILE = "IGNITE_CLI_CONFIG_FILE";
+
+ /**
+ * Current profile property name.
+ */
public static final String CURRENT_PROFILE = "current_profile";
+
+ /**
+ * Default cluster or node URL property name.
+ */
public static final String CLUSTER_URL = "ignite.cluster-endpoint-url";
+
+ /**
+ * Default JDBC URL property name.
+ */
public static final String JDBC_URL = "ignite.jdbc-url";
+
+ /**
+ * Last connected URL property name.
+ */
public static final String LAST_CONNECTED_URL = "ignite.last-connected-url";
private ConfigConstants() {
-
}
-
+ /**
+ * Gets the {@link File} with user-specific configuration file.
+ * The file location can be overridden using {@code IGNITE_CLI_CONFIG_FILE} environment variable,
+ * otherwise base directory is specified by the
+ * <a href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG Base Directory Specification</a>
+ * and the configuration file name is {@code ignitecli/defaults} under the base directory.
+ *
+ * @return configuration file.
+ */
public static File getConfigFile() {
+ String configFile = System.getenv(IGNITE_CLI_CONFIG_FILE);
+ if (configFile != null) {
+ return new File(configFile);
+ }
return getConfigRoot().resolve(PARENT_FOLDER_NAME).resolve(CONFIG_FILE_NAME).toFile();
}