def main(argv):
      diretorio = ''
      refactorings = ''
      transformar = ''
      try:
            opts, args = getopt.getopt(argv,"hd:r:t:",["diretorio=","refactorings=","transformar="])
      except getopt.GetoptError:
            print ('refactool.py -d <diretorio> -r <refactorings> -t <transformar>')
            sys.exit(2)
      for opt, arg in opts:
            if opt == '-h':
               help_text()
               sys.exit()
            elif opt in ("-d", "--dir"):
               diretorio = arg
            elif opt in ("-r", "--refact"):
               refactorings = arg
            elif opt in ("-t", "--transf"):
               transformar = arg

      if diretorio == '':
            help_text()
            sys.exit()

      if refactorings == '':
            refactorings = [1,2,3,4,5,6,7,8,9]
      else:
            refactorings = refactorings.replace('[','').replace(',','').replace(']','')

      if transformar == '':
            transformar = 0

      #chamar principal
      refactool_core(diretorio,refactorings,tranformar)
    def executar(self):
        if self.diretorio.text() == '':
            QtGui.QMessageBox.warning(self.centralwidget, "Selecione um diretório",
                    "Não há diretório selecionado.",
                    QtGui.QMessageBox.Ok, QtGui.QMessageBox.NoButton,
                    QtGui.QMessageBox.NoButton)
            return
                                    
        refactorings = []
        if self.cbRef1.isChecked():
            refactorings.append(1)
        if self.cbRef2.isChecked():
            refactorings.append(2)
        if self.cbRef3.isChecked():
            refactorings.append(3)
        if self.cbRef4.isChecked():
            refactorings.append(4)
        if self.cbRef5.isChecked():
            refactorings.append(5)
        if self.cbRef6.isChecked():
            refactorings.append(6)
        if self.cbRef7.isChecked():
            refactorings.append(7)
        if self.cbRef8.isChecked():
            refactorings.append(8)
        if self.cbRef9.isChecked():
            refactorings.append(9)

        if refactorings == []:
            QtGui.QMessageBox.warning(self.centralwidget, "Selecione ao menos um refactoring",
                    "Não há nenhum refactoring selecionado.",
                    QtGui.QMessageBox.Ok, QtGui.QMessageBox.NoButton,
                    QtGui.QMessageBox.NoButton)
            return
            
        refactool_core(self.diretorio.text(),refactorings,self.cbTransformar.isChecked())
        fo = open(self.diretorio.text() + "/refactool_log.txt","r")
        detalhes_log = fo.read()
        fo.close
        
        msg = QtGui.QMessageBox()
        
        msg.setIcon(QtGui.QMessageBox.Information)
        msg.setWindowTitle("Refactool")
        msg.setText("Execução finalizada")
        msg.setInformativeText("Para visualizar o log abra o arquivo de log (refactool_log.txt) ou expanda os detalhes abaixo")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(_fromUtf8("1452113474_arrow_cycle.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        msg.setWindowIcon(icon)
        msg.setDetailedText(detalhes_log)
        msg.setStandardButtons(QtGui.QMessageBox.Ok)
        #todo: aumentar tamanho da janela para melhor visualização do log
        retval = msg.exec_()