cleanup (inspection "Java | Class structure | Utility class is not 'final'")
[idea/community.git] / jps / standalone-builder / src / org / jetbrains / jps / idea / IdeaProjectLoader.java
1 // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package org.jetbrains.jps.idea;
3
4 import groovy.lang.Script;
5 import org.jetbrains.jps.model.serialization.PathMacroUtil;
6
7 import java.io.File;
8 import java.io.IOException;
9 import java.net.URI;
10 import java.net.URISyntaxException;
11
12 public final class IdeaProjectLoader {
13   /**
14    * This method is still used in some *.gant scripts via jps-build-script-dependencies-bootstrap library
15    */
16   @SuppressWarnings("unused")
17   public static String guessHome(Script script) throws IOException, URISyntaxException {
18     String uri = (String)script.getProperty("gant.file");
19     File home = new File(new URI(uri).getSchemeSpecificPart());
20
21     while (home != null) {
22       if (home.isDirectory() && new File(home, PathMacroUtil.DIRECTORY_STORE_NAME).exists()) {
23         return home.getCanonicalPath();
24       }
25
26
27       home = home.getParentFile();
28     }
29
30     throw new IllegalArgumentException("Cannot guess project home from '" + uri + "'");
31   }
32 }