Пример #1
0
  /**
   * Locate root path.
   *
   * @param root The user-specified root path.
   */
  private void locateRoot(String root) {
    // Locate default root folder.
    if (root == null) {
      File pwd = new File(".").getAbsoluteFile();
      File f = pwd;
      String[] l = null;

      // Detect intl-style/xxx/htdocs by finding "js" and "css" in sub folders.
      do {
        f = f.getParentFile();
        if (f == null) {
          break;
        }

        l =
            f.list(
                new FilenameFilter() {
                  private Pattern pattern = Pattern.compile("^(?:js|css)$");

                  public boolean accept(File dir, String name) {
                    return pattern.matcher(name).matches();
                  }
                });
      } while (l.length != 2);

      // If present, use intl-style/xxx/htdocs as root folder for Alibaba.
      if (f != null) {
        this.root = canonize(f);
        // Else use present working folder as root folder.
      } else {
        this.root = canonize(pwd);
      }
      // Use user-specified root folder.
    } else {
      File f = new File(root);
      if (f.exists()) {
        this.root = canonize(f);
      } else {
        App.exit("The user-specified root folder " + root + " does not exist.");
      }
    }
  }