Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jboss.forge.roaster;
  
  import java.io.File;
  import java.io.FileFilter;
  import java.util.Arrays;
  import java.util.List;
 
 
 public class Bootstrap
 {
    public static void main(final String[] argsthrows InterruptedExceptionExecutionExceptionIOException
    {
       final List<StringbootstrapArgs = new ArrayList<String>();
       final Properties systemProperties = System.getProperties();
       // Set system properties
       for (String arg : args)
       {
          if (arg.startsWith("-D"))
          {
             final String name;
             final String value;
             final int index = arg.indexOf("=");
             if (index == -1)
             {
                name = arg.substring(2);
                value = "true";
             }
             else
             {
                name = arg.substring(2, index);
                value = arg.substring(index + 1);
             }
             systemProperties.setProperty(namevalue);
          }
          else
          {
             bootstrapArgs.add(arg);
          }
       }
 
       Bootstrap bootstrap = new Bootstrap();
       bootstrap.run(bootstrapArgs);
    }
 
    private void run(List<Stringargsthrows IOException
    {
       if (args.isEmpty() || args.contains("--help") || args.contains("-h"))
       {
          ..println(help());
          return;
       }
       boolean quiet = false;
       boolean recursive = false;
       String configFile = null;
       List<Filefiles = new ArrayList<File>();
       for (int i = 0; i < args.size(); i++)
       {
          String arg = args.get(i);
          if ("--config".equals(arg) || "-c".equals(arg))
          {
             configFile = args.get(++i);
             if (!new File(configFile).isFile())
             {
                ..println("roaster: configuration file [" + configFile + "] does not exist.");
                return;
             }
          }
          else if ("--recursive".equals(arg) || "-r".equals(arg))
          {
             recursive = true;
          }
          else if ("--quiet".equals(arg) || "-q".equals(arg))
          {
             quiet = true;
          }
          else if (new File(arg).exists())
          {
             files.add(new File(arg));
          }
          else
          {
             ..println("roaster: no such file: '" + arg + "'");
             ..println("Try 'roaster --help' for more information.");
          }
       }
 
       format(filesconfigFilerecursivequiet);
    }
 
    private void format(List<FilefilesString configFilefinal boolean recursivefinal boolean quiet)
             throws IOException
    {
       for (File file : files)
       {
         if (file.isDirectory())
         {
            format(Arrays.asList(file.listFiles(new FileFilter()
            {
               @Override
               public boolean accept(File file)
               {
                  return recursive || file.isFile();
               }
            })), configFilerecursivequiet);
         }
         else if (file.getName().endsWith(".java"))
         {
            if (!quiet)
               ..printf("Formatting %s "file.getAbsolutePath());
            try
            {
               if (configFile != null)
               {
                  if (!quiet)
                     ..printf("using %s ... "new File(configFile).getAbsolutePath());
                  Formatter.format(new File(configFile), file);
               }
               else
               {
                  if (!quiet)
                     ..printf("... ");
                  Formatter.format(file);
               }
            }
            catch (IOException e)
            {
               if (!quiet)
                  ..println("Error: " + e.getMessage());
               continue;
            }
            if (!quiet)
               ..println("OK!");
         }
      }
   }
   private String help()
   {
      StringBuilder sb = new StringBuilder();
      sb.append("Usage: roaster [OPTION]... FILES ... \n");
      sb.append("The simplest command-line Java code formatter. A JBoss Forge sub-project: http://forge.jboss.org\n");
      sb.append("\n");
      sb.append("-c, --config [CONFIG_FILE]\n");
      sb.append("\t specify the path to the Eclipse code format profile (usually found at '$PROJECT/.settings/org.eclipse.jdt.core.prefs') \n");
      sb.append("\n");
      sb.append("-r, --recursive\n");
      sb.append("\t format files in found sub-directories recursively \n");
      sb.append("\n");
      sb.append("FILES... \n");
      sb.append("\t specify one or more space-separated files or directories to format \n");
      sb.append("\n");
      sb.append("-q, --quiet\n");
      sb.append("\t do not display any output \n");
      sb.append("\n");
      sb.append("-h, --help\n");
      sb.append("\t display this help and exit \n");
      return sb.toString();
   }
New to GrepCode? Check out our FAQ X