ef369ae8510b4cb6620087e0f75e038f135b66ed
[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 /**
13  * @author max
14  */
15 public class IdeaProjectLoader {
16   /**
17    * This method is still used in some *.gant scripts via jps-build-script-dependencies-bootstrap library
18    */
19   @SuppressWarnings("unused")
20   public static String guessHome(Script script) throws IOException, URISyntaxException {
21     String uri = (String)script.getProperty("gant.file");
22     File home = new File(new URI(uri).getSchemeSpecificPart());
23
24     while (home != null) {
25       if (home.isDirectory() && new File(home, PathMacroUtil.DIRECTORY_STORE_NAME).exists()) {
26         return home.getCanonicalPath();
27       }
28
29
30       home = home.getParentFile();
31     }
32
33
34     throw new IllegalArgumentException("Cannot guess project home from '" + uri + "'");
35   }
36 }