def main(): try: opts, extra_params = getopt.getopt(sys.argv[1:], "hgl:e:w:p:", ["help", "generate", "language=", "export=", "workspace=", "project="]) except getopt.GetoptError: usage() sys.exit(2) language = None export = None generate = False dir = None for opt, arg in opts: if opt in ['-h', '--help']: usage() sys.exit() else: if opt in ['-g', '--generate']: generate = True if opt in ['-l', '--language']: language = arg if opt in ['-e', '--export']: export = arg if opt in ['-w', '--workspace', '-p', '--project']: dir = arg if language is None: usage() sys.exit() # if len(extra_params) > 1: # usage() # sys.exit() # else: # project_name = extra_params[0] if dir != None: if opt == '-p': project_name = os.path.abspath(dir) print '' print project_name # Set the variables print '' print 'Setting up...' setup = Setup(language, project_name) # Set the project type (C or Java) project = setup.getProject() print 'Done.' print '' print '===================================' # Create the work directory (pl_stats directory) print '' print 'Creating directories...' project.createDirectories() print 'Done.' print '' print '===================================' # Copy files from project to work directory print '' print 'Copying source files to work directory...' project.copyFiles() print 'Done.' print '' print '===================================' # Create XML files from project source code print '' print 'Converting source files...' project.createXMLFiles() # Remove source files from work directory project.moveXMLFiles() print 'Done.' print '' print '===================================' # Create the object to manipulate project statistics print '' print 'Generating statistics...' stats = project.getStats() # Get project statistics dict_methods, dict_features, dict_cbr, dict_vsoc, dict_decl_coupling, dict_assign_coupling = stats.getStatistics() print 'Done.' print '' print '===================================' # Export directives results do XLS file # print '' # print 'Creating directives sheet...' # stats.exportDirectivesToXLS(dict_methods, dict_features) # print 'Done.' # print '' # print '===================================' # # # Export dependencies results do XLS file # print '' # print 'Creating dependencies sheet...' # stats.exportDependenciesToXLS(dict_decl_coupling, dict_assign_coupling) # print 'Done.' # print '' # print '===================================' # Export directives data to CSV file print '' print 'Creating directives_data csv file...' stats.exportDirectivesDataToCSV(dict_methods, dict_features) print 'Done.' print '' print '===================================' # Export directives results do CSV file print '' print 'Creating directives_results csv file...' stats.exportDirectivesResultsToCSV(dict_methods, dict_features) print 'Done.' print '' print '===================================' # Export dependencies results do CSV file print '' print 'Creating dependencies csv file...' stats.exportDependenciesToCSV(dict_decl_coupling, dict_assign_coupling) print 'Done.' print '' print '===================================' else: for project_dir in os.listdir(os.path.abspath(dir)): project_name = os.path.abspath(dir+project_dir) print '' print project_name # Set the variables print '' print 'Setting up...' setup = Setup(language, project_name) # Set the project type (C or Java) project = setup.getProject() print 'Done.' print '' print '===================================' # Create the work directory (pl_stats directory) print '' print 'Creating directories...' project.createDirectories() print 'Done.' print '' print '===================================' # Copy files from project to work directory print '' print 'Copying source files to work directory...' project.copyFiles() print 'Done.' print '' print '===================================' # Create XML files from project source code print '' print 'Converting source files...' project.createXMLFiles() # Remove source files from work directory project.moveXMLFiles() print 'Done.' print '' print '===================================' # Create the object to manipulate project statistics print '' print 'Generating statistics...' stats = project.getStats() # Get project statistics dict_methods, dict_features, dict_cbr, dict_vsoc, dict_decl_coupling, dict_assign_coupling = stats.getStatistics() print 'Done.' print '' print '===================================' # Export directives results do XLS file # print '' # print 'Creating directives sheet...' # stats.exportDirectivesToXLS(dict_methods, dict_features) # print 'Done.' # print '' # print '===================================' # # # Export dependencies results do XLS file # print '' # print 'Creating dependencies sheet...' # stats.exportDependenciesToXLS(dict_decl_coupling, dict_assign_coupling) # print 'Done.' # print '' # print '===================================' # Export directives data to CSV file print '' print 'Creating directives_data csv file...' stats.exportDirectivesDataToCSV(dict_methods, dict_features) print 'Done.' print '' print '===================================' # Export directives results do CSV file print '' print 'Creating directives_results csv file...' stats.exportDirectivesResultsToCSV(dict_methods, dict_features) print 'Done.' print '' print '===================================' # Export dependencies results do CSV file print '' print 'Creating dependencies csv file...' stats.exportDependenciesToCSV(dict_decl_coupling, dict_assign_coupling) print 'Done.' print '' print '===================================' print '===================================' print '######### PL-Stats - v. 0.5 #########' print '-----------------------------------' print '# Project: ' + project_name.__str__() print '-----------------------------------' print '# Total of project methods: ' + len(dict_methods).__str__() print '==================================='