Fan.Sys.Sys.sysPropToDir C# (CSharp) Method

sysPropToDir() private static method

private static sysPropToDir ( string propKey, string envKey, string def ) : string
propKey string
envKey string
def string
return string
        private static string sysPropToDir(string propKey, string envKey, string def)
        {
            // lookup system property
              string val = SysProps.getProperty(propKey);

              // fallback to environment variable
              if (val == null)
            val = Environment.GetEnvironmentVariable(envKey);

              // fallback to def if provides
              if (val == null && def != null)
            val = def;

              // if still not found then we're toast
              if (val == null)
            throw new Exception("Missing " + propKey + " system property or " + envKey + " env var");

              // check if relative to home directory (fand, fant)
              bool checkExists = true;
              if (val.StartsWith("$home"))
              {
            val = FileUtil.combine(m_homeDir, val.Substring(6));
            checkExists = false;
              }

              // check that it is a valid directory
              if (checkExists && !Directory.Exists(val))
            throw new Exception("Invalid " + propKey + " dir: " + val);

              // make sure path gets normalized
              return new DirectoryInfo(val).FullName;
        }