docs: static ProcessBuilder buildProcess(
              final File workingdir,
              final File scriptfile,
              final String scriptargs,
              final String[] scriptargsarr,
              final Map<String, Map<String, String>> envContext,
              final Map<String, Map<String, String>> newDataContext,
              final String interpreter,
              final boolean interpreterArgsQuoted
      )
      {
          final ArrayList<String> shells = new ArrayList<String>();
          if (null != interpreter) {
              shells.addAll(Arrays.asList(interpreter.split(" ")));
          }
  
          //use script-copy attribute and replace datareferences
          if (null != scriptargs || null!=scriptargsarr) {
              if (interpreterArgsQuoted) {
                  final String newargs = null != scriptargs ? DataContextUtils.replaceDataReferencesInString(
                          scriptargs,
                          newDataContext
                  ) : DataContextUtils.join(Arrays.asList(DataContextUtils.replaceDataReferencesInArray(
                          scriptargsarr,
                          newDataContext
                  )), " ");
                  shells.add(scriptfile.getAbsolutePath() + " " + newargs);
              } else {
                  shells.add(scriptfile.getAbsolutePath());
                  shells.addAll(Arrays.asList(DataContextUtils.replaceDataReferencesInArray(
                          null!=scriptargsarr?scriptargsarr:scriptargs.split(" "),
                          newDataContext
                  )));
              }
          } else {
              shells.add(scriptfile.getAbsolutePath());
          }
  
          final ProcessBuilder processBuilder = new ProcessBuilder(shells).directory(workingdir);
          final Map<String, String> environment = processBuilder.environment();
          //create system environment variables from the data context
          if (null != envContext) {
              environment.putAll(DataContextUtils.generateEnvVarsFromContext(envContext));
          }
  
          return processBuilder;
      }