private File getServerDirFromConfig(String configFilePath) {

		if (configFilePath == null) {
			return null;
		}

		File configFile = new File(configFilePath);
		if (!configFile.exists()) {
			System.out.println("Config file not found: " + configFile.getAbsolutePath());
			return null;
		}

		if (configFile.isDirectory()) {
			// If specified path is a directory treat as the server root
			return configFile;
		}

		System.out.println("Using config file: " + configFilePath);

		Properties config = new Properties();
		InputStream in = null;
		try {
			in = new FileInputStream(configFile);
			config.load(in);
		}
		catch (IOException e) {
			System.out.println("Failed to read " + configFile.getName() + ": " + e.getMessage());
		}
		finally {
			if (in != null) {
				try {
					in.close();
				}
				catch (IOException e) {
					// ignore
				}
			}
		}

		String p = config.getProperty(SERVER_DIR_CONFIG_PROPERTY);
		if (p == null) {
			System.out.println("Failed to find property: " + SERVER_DIR_CONFIG_PROPERTY);
			return null;
		}
		File dir = new File(p);
		if (!dir.isAbsolute()) {
			// Make relative repositories dir relative to installation root
			ResourceFile installRoot = Application.getInstallationDirectory();
			if (installRoot == null || installRoot.getFile(false) == null) {
				System.out.println("Failed to resolve installation root directory!");
				return null;
			}
			dir = new File(installRoot.getFile(false), p);
		}
		return dir;
	}
Parse contents of specified configFilePath as server.conf to determine
repositories root directory.  If configFilePath corresponds to a directory,
that directory will be treated as the repositories root directory.
@param configFilePath path to server.conf or repositories root directory
@return repositories root directory
Ghidra/Features/GhidraServer/src/main/java/ghidra/server/ServerAdmin.java