From f02f79114d15e62d075402bb71d50ee1122668d5 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Sat, 28 Dec 2019 15:56:55 -0500 Subject: [PATCH] add keyValue utility --- .../cobbzilla/util/main/BaseMainOptions.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/org/cobbzilla/util/main/BaseMainOptions.java b/src/main/java/org/cobbzilla/util/main/BaseMainOptions.java index 3eb1ec1..c027370 100644 --- a/src/main/java/org/cobbzilla/util/main/BaseMainOptions.java +++ b/src/main/java/org/cobbzilla/util/main/BaseMainOptions.java @@ -2,6 +2,7 @@ package org.cobbzilla.util.main; import lombok.Getter; import lombok.Setter; +import org.cobbzilla.util.io.FileUtil; import org.kohsuke.args4j.Option; import java.io.*; @@ -67,4 +68,20 @@ public class BaseMainOptions { die("No such field: "+field+": "+e, e); } } + + public static String keyValue(String v, String desc) { + if (empty(v)) return v; + if (!v.startsWith("@")) return v; + final String varOrFile = v.substring(1); + final String envVal = System.getenv(varOrFile); + if (!empty(envVal)) return envVal; + try { + return FileUtil.toString(varOrFile); + } catch (FileNotFoundException e) { + return die(desc+": no env var or file named "+varOrFile); + } catch (Exception e) { + return die(desc+": error reading: "+varOrFile+": "+e); + } + } + }