Changeset 3751


Ignore:
Timestamp:
Mar 27, 2014, 5:49:23 PM (3 years ago)
Author:
ksherdy
Message:

Cleaned up CLI.

Location:
proto/s2k/trunk/framework/src/application
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • proto/s2k/trunk/framework/src/application/config/Configuration.java

    r3699 r3751  
    1010package application.config;
    1111
     12import java.io.File;
     13
    1214import org.apache.commons.cli.CommandLine;
    1315import application.helpers.FileUtil;
     
    2022        public  static final int    EXIT_CODE_FOR_ERROR         = 1;
    2123
    22         private static final Target DEFAULT_TARGET = CPP_LANG;
     24        public static final Target DEFAULT_TARGET = CPP_LANG;
    2325   
    2426        // Default base directories.  Each base directory gets a short target identifier as a directory (e.g. "cpplang/") appended.
    2527        // CLI-provided directory names are not base directories and do not get the target short identifier appended.
    26         private static final String DEFAULT_OUTPUT_BASE_DIRECTORY    = "output/";
    27         private static final String DEFAULT_TEMPLATE_BASE_DIRECTORY  = "input/templates/";
    28         private static final String DEFAULT_TEMPLATE_FILENAME        = "definitions.template";
     28        public static final String DEFAULT_OUTPUT_BASE_DIRECTORY        = "output/cpplang"; // KH: no longer exposed to command line interface
     29        public static final String DEFAULT_OUTPUT_FILENAME                      = "a.out";     
     30        public static final String DEFAULT_TEMPLATE_BASE_DIRECTORY      = "input/templates/"; // KH: no longer exposed to command line interface
     31        public static final String DEFAULT_TEMPLATE_FILENAME            = "definitions.template";
     32       
    2933       
    3034        // public static factory
     
    8993       
    9094        // Template directory and filename queries
    91         private String defaultTemplateDirectory() {
    92                 return DEFAULT_TEMPLATE_BASE_DIRECTORY + target.getShortName();
     95        public static String defaultTemplateDirectory() {
     96                return DEFAULT_TEMPLATE_BASE_DIRECTORY;
    9397        }
    94         public String templateDirectory() {
    95                 return FileUtil.directory(cli.getOptionValue("T", defaultTemplateDirectory()));
    96         }       
    9798        public String templateFileName() {
    9899                return cli.getOptionValue("t", DEFAULT_TEMPLATE_FILENAME);
    99100        }
     101       
    100102        public String templateFilePath() {
    101                 return templateDirectory() + templateFileName();
     103                if(!cli.hasOption("t")) {
     104                        return FileUtil.ensureEndsWith(defaultTemplateDirectory(), File.separator) + templateFileName();
     105                } else {
     106                        return templateFileName();
     107                }
    102108        }
    103109
    104110        // Output directory and filename queries
    105         private String defaultOutputDirectory() {
    106                 return DEFAULT_OUTPUT_BASE_DIRECTORY + target.getShortName();           // is the +target.getShortName() the same as original?  TS
    107         }
    108         public String outputDirectory() {
    109                 return FileUtil.directory(cli.getOptionValue("O", defaultOutputDirectory()));
     111        public static String defaultOutputDirectory() {
     112                return DEFAULT_OUTPUT_BASE_DIRECTORY;   
    110113        }
    111114        public String outputFileName() {
    112                 return cli.getOptionValue("o", FileUtil.replaceExtension(templateFileName(), target.getExtension()));
     115                return cli.getOptionValue("o", DEFAULT_OUTPUT_FILENAME);
    113116        }
    114117        public String outputFilePath() {
    115                 return outputDirectory() + outputFileName();
     118                if(!cli.hasOption("o")) {
     119                        return FileUtil.ensureEndsWith(defaultOutputDirectory(), File.separator) + outputFileName();
     120                } else {
     121                        return outputFileName();
     122                }
    116123        }       
    117124}
  • proto/s2k/trunk/framework/src/application/config/ConfigurationOptions.java

    r3699 r3751  
    4040
    4141                addNonrequiredOption("t", "template",      HAS_ARG, COMPILER_NAME + " template file.");
    42                 addNonrequiredOption("T", "templatedir",   HAS_ARG, COMPILER_NAME + " template directory.");
    43                 addNonrequiredOption("o", "output",        HAS_ARG, COMPILER_NAME + " output file.");   
    44                 addNonrequiredOption("O", "outputdir",     HAS_ARG, COMPILER_NAME + " output directory.");     
     42                addNonrequiredOption("o", "output",        HAS_ARG, COMPILER_NAME + " output file.");           
    4543                addNonrequiredOption("e", "error",         HAS_ARG, "Name or qualified name of an error routine.");     
    4644                addNonrequiredOption("a", "align",         NO_ARG,  "Add ASSERT_BITBLOCK_ALIGN statments.");   
  • proto/s2k/trunk/framework/src/application/generators/AbstractTemplateContentsGenerator.java

    r3699 r3751  
    1313        protected b2k.ast.ProgramNode programNode;
    1414        protected AbstractUnparser unparser;
    15     protected String outputDirectory;
     15    //protected String outputDirectory;
    1616        protected String templateFilePath;
    1717        protected String targetFilePath;
     
    1919        public AbstractTemplateContentsGenerator(b2k.ast.ProgramNode programNode,
    2020                                                                                AbstractUnparser unparser,
    21                                                                                 String outputDirectory,
     21                //                                                              String outputDirectory,
    2222                                                                                String templateFilePath,
    2323                                                                                String targetFilePath) {
     
    2525                this.programNode                = programNode;         
    2626                this.unparser                   = unparser;
    27                 this.outputDirectory    = outputDirectory;                     
     27                // this.outputDirectory         = outputDirectory;                     
    2828                this.templateFilePath   = templateFilePath;
    2929                this.targetFilePath             = targetFilePath;
  • proto/s2k/trunk/framework/src/application/generators/ApplicationGenerator.java

    r3699 r3751  
    102102//              String templateDirectory        = applicationConfiguration.getTemplateDirectory();
    103103                String templateFilePath         = applicationConfiguration.templateFilePath();
    104                 String outputDirectory          = applicationConfiguration.outputDirectory();
     104//              String outputDirectory          = applicationConfiguration.outputDirectory();
    105105                String outputFilePath           = applicationConfiguration.outputFilePath();
    106106               
     
    108108                                                                        = new HeaderTemplateContentsGenerator((b2k.ast.ProgramNode) b2kAST,
    109109                                                                                                                                                        unparser,
    110                                                                                                                                                         outputDirectory,
     110//                                                                                                                                                      outputDirectory,
    111111                                                                                                                                                        templateFilePath,
    112112                                                                                                                                                        outputFilePath);       
  • proto/s2k/trunk/framework/src/application/generators/HeaderTemplateContentsGenerator.java

    r3699 r3751  
    2727        public HeaderTemplateContentsGenerator( ProgramNode programNode,
    2828                                                                                        AbstractUnparser unparser,
    29                                                                                         String outputDirectory,
     29//                                                                                      String outputDirectory,
    3030                                                                                        String templateFilePath,
    3131                                                                                        String targetFilePath) {
     32
    3233               
    33                 super(programNode, unparser, outputDirectory, templateFilePath, targetFilePath);
     34                super(programNode, unparser, templateFilePath, targetFilePath);
    3435        }
    3536
    3637        public void generate() {
    3738               
    38                 FileUtil.makeDirectories(outputDirectory);
     39                if(hasParentDirectory(targetFilePath)) {
     40                        FileUtil.makeDirectories(new File(targetFilePath).getParent());
     41                }
    3942               
    4043                String templateName = FileUtil.getBaseName(new File(templateFilePath).getName());
     
    4851                PrintStream     out = makePrintStreamFromFilename(targetFilePath);
    4952                template.print(out);
     53        }
     54       
     55        private boolean hasParentDirectory(String filePath) {
     56                String parentDirectory = new File(filePath).getParent();
     57                return parentDirectory != null;
    5058        }
    5159       
Note: See TracChangeset for help on using the changeset viewer.