public void exec()

in aws-android-sdk-appsync-gradle-plugin/src/main/java/com/apollographql/apollo/gradle/ApolloIRGenTask.java [65:126]


  public void exec() {
    File schemaFile = null;
    if (extension.getSchemaFilePath() != null) {
      schemaFile = Paths.get(extension.getSchemaFilePath()).toFile();
      if (!schemaFile.exists()) {
        schemaFile = Paths.get(getProject().getRootDir().getAbsolutePath(), extension.getSchemaFilePath()).toFile();
      }

      if (!schemaFile.exists()) {
        throw new GradleException("Provided schema file path doesn't exists: " + extension.getSchemaFilePath() +
            ". Please ensure a valid schema file exists");
      }
    }

    File targetPackageFolder = null;
    if (schemaFile != null) {
      if (extension.getOutputPackageName() == null || extension.getOutputPackageName().trim().isEmpty()) {
        throw new GradleException("Missing explicit targetPackageName option. Please ensure a valid package name is provided");
      } else {
        targetPackageFolder = new File(outputFolder.getAbsolutePath()
            + File.separator + "src"
            + File.separator + "main"
            + File.separator + "graphql"
            + File.separator + extension.getOutputPackageName().replace(".", File.separator));
      }
    }

    File apolloScript = new File(getProject().getBuildDir(), APOLLO_CODEGEN);
    if (!apolloScript.isFile()) {
      throw new GradleException("Apollo-codegen was not found in node_modules. Please run the installApolloCodegen task.");
    }
    setScript(apolloScript);

    final List<ApolloCodegenArgs> codegenArgs;
    if (schemaFile == null) {
      codegenArgs = codeGenArgs(getInputs().getSourceFiles().getFiles());
    } else {
      Set<String> queryFilePaths = new HashSet<>();
      for (File queryFile : queryFilesFrom(getInputs().getSourceFiles().getFiles())) {
        queryFilePaths.add(queryFile.getAbsolutePath());
      }
      codegenArgs = Collections.singletonList(new ApolloCodegenArgs(schemaFile, queryFilePaths, targetPackageFolder));
    }

    for (ApolloCodegenArgs codegenArg : codegenArgs) {
      codegenArg.irOutputFolder.mkdirs();

      List<String> apolloArgs = new ArrayList<>();
      apolloArgs.add("generate");
      apolloArgs.addAll(codegenArg.queryFilePaths);
      apolloArgs.addAll(Arrays.asList(
          "--add-typename",
          "--schema", codegenArg.schemaFile.getAbsolutePath(),
          "--output", codegenArg.irOutputFolder.getAbsolutePath() + File.separator + Utils.capitalize(variant) + "API.json",
          "--operation-ids-path", codegenArg.irOutputFolder.getAbsolutePath() + File.separator + Utils.capitalize(variant) + "OperationIdMap.json",
          "--merge-in-fields-from-fragment-spreads", "false",
          "--target", "json"
      ));
      setArgs(apolloArgs);
      super.exec();
    }
  }