1 package com.acumenvelocity.ath.common;
2
3 import java.util.LinkedHashMap;
4 import java.util.Map;
5 import java.util.stream.Collectors;
6 import java.util.stream.Stream;
7
8 import net.sf.okapi.common.Util;
9
10
11
12
13
14 public class EnvVarsChecker {
15 private static final Map<String, String> ENV_VARS = Stream.of(new String[][] {
16 { "ATH_HOST",
17 "The particular interface for ATH to listen on (ATH_HOST='0.0.0.0')" },
18
19 { "ATH_PORT", "Port number for ATH to listen on (ATH_PORT='8080')" },
20
21 { "ATH_IDLE_TIMEOUT",
22 "Maximum idle time for a connection (ATH_IDLE_TIMEOUT='60000' - 60 sec)" },
23
24 { "ATH_GCP_SECRET_FILE",
25 "Full path and name of the ATH Google Application Credentials JSON file "
26 + "(ATH_GCP_SECRET_FILE='********')" },
27
28 { "ATH_GCP_PROJECT_LOCATION",
29 "The GCP region used for Cloud Storage buckets, Translation API "
30 + "operations, and workload deployment, e.g., 'us-central1'. "
31 + "(ATH_GCP_PROJECT_LOCATION='us-central1')" },
32
33
34
35
36 { "ATH_GEMINI_API_KEY",
37 "Gemini API Key (ATH_GEMINI_API_KEY='AIza********')" },
38
39 { "ATH_SOLR_URL",
40 "Apache Solr URL (ATH_SOLR_URL='http://localhost:8983/solr')" },
41
42 { "ATH_PDF_CLIENT_ID",
43 "The Client ID required for authenticating with the Adobe PDF services API. "
44 + "(ATH_PDF_CLIENT_ID='********')" },
45
46 { "ATH_PDF_CLIENT_SECRET",
47 "The Client Secret for authenticating with the Adobe PDF services API. "
48 + "(ATH_PDF_CLIENT_SECRET='********'" },
49
50
51
52
53
54
55
56
57
58 }).collect(
59 Collectors.toMap(data -> data[0], data -> data[1], (u, v) -> u,
60 LinkedHashMap::new));
61
62 static void init() {
63 ENV_VARS.forEach((var, descr) -> {
64 String st = null;
65
66 if (checkEnvVar(var)) {
67 st = Log.format("{}='{}'", var, System.getenv(var));
68 Log.info(EnvVarsChecker.class, st);
69
70 } else {
71 Log.error(EnvVarsChecker.class, false,
72 "Environment variable '{}' is not set ('{}').\n"
73 + "Please set all required environment variables.",
74 var, descr);
75
76 System.exit(1);
77 }
78 });
79 }
80
81
82
83
84
85
86
87 private static boolean checkEnvVar(String envVarName) {
88 String envVarValue = System.getenv(envVarName);
89 boolean res = !Util.isEmpty(envVarValue);
90 return res;
91 }
92 }