docs: def main(params=None):
      """
      Main function to launch phonefy.
  
      The function is created in this way so as to let other applications make
      use of the full configuration capabilities of the application. The
      parameters received are used as parsed by this modules `getParser()`.
  
      Args:
      -----
          params: A list with the parameters as grabbed by the terminal. It is
              None when this is called by an entry_point. If it is called by osrf
              the data is already parsed.
  
      Results:
      --------
          Returns a list with i3visio entities.
      """
      if params == None:
          parser = getParser()
          args = parser.parse_args(params)
      else:
          args = params
  
      results = []
  
      # Recovering the logger
      # Calling the logger when being imported
      logSet.setupLogger(loggerName="osrframework.entify", verbosity=args.verbose, logFolder=args.logfolder)
      # From now on, the logger can be recovered like this:
      logger = logging.getLogger("osrframework.entify")
  
      logger.info("Selecting the regular expressions to be analysed...")
  
      if not args.quiet:
          print(general.title(banner.text))
  
      sayingHello = """
        Entify | Copyright (C) Yaiza Rubio & Félix Brezo (i3visio) 2014-2018
  
  This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you
  are welcome to redistribute it under certain conditions. For additional info,
  visit <{}>.
  """.format(general.LICENSE_URL)
      print(general.info(sayingHello))
      
      if args.license:
          general.showLicense()
      else:
          listRegexp = []
          if args.regexp:
              listRegexp = regexp_selection.getRegexpsByName(args.regexp)
          elif args.new_regexp:
              for i, r in enumerate(args.new_regexp):
                  listRegexp.append(RegexpObject(name = "NewRegexp"+str(i), reg_exp = args.new_regexp))
  
          if not args.web:
              results = scanFolderForRegexp(folder = args.input_folder, listRegexp= listRegexp, recursive = args.recursive, verbosity=args.verbose, logFolder= args.logfolder, quiet=args.quiet)
          else:
              results = scanResource(uri = args.web, listRegexp= listRegexp, verbosity=args.verbose, logFolder= args.logfolder)
          logger.info("Logging the results:\n" + json.dumps(results, indent=2, sort_keys=True))
  
          # Trying to store the information recovered
          if args.output_folder != None:
              # Verifying an output folder was selected
              logger.debug("Preparing the output folder...")
              if not os.path.exists(args.output_folder):
                  logger.warning("The output folder \'" + args.output_folder + "\' does not exist. The system will try to create it.")
                  os.makedirs(args.output_folder)
  
              # Grabbing the results
              fileHeader = os.path.join(args.output_folder, args.file_header)
              for ext in args.extension:
                  # Generating output files
                  general.exportUsufy(results, ext, fileHeader)
  
          # Showing the information gathered if requested
          if not args.quiet:
              now = dt.datetime.now()
              print("\n{}\tResults obtained:\n".format(str(now)))
              print(general.success(general.usufyToTextExport(results)))
  
              now = dt.datetime.now()
              print(str(now) + "\tYou can find all the information collected in the following files:")
              for ext in args.extension:
                  # Showing the output files
                  print("\t-" + general.emphasis(fileHeader + "." + ext))
  
              # Urging users to place an issue on Github...
              print(banner.footer)
  
      if params:
          return results