docs: def main(arguments=None):
      """
      *The main function used when ``cl_utils.py`` is run as a single script from the cl, or when installed as a cl command*
      """
      # setup the command-line util settings
      su = tools(
          arguments=arguments,
          docString=__doc__,
          logLevel="DEBUG",
          options_first=False,
          projectName="HMpTy"
      )
      arguments, settings, log, dbConn = su.setup()
  
      # unpack remaining cl arguments using `exec` to setup the variable names
      # automatically
      for arg, val in arguments.iteritems():
          if arg[0] == "-":
              varname = arg.replace("-", "") + "Flag"
          else:
              varname = arg.replace("<", "").replace(">", "")
          if isinstance(val, str) or isinstance(val, unicode):
              exec(varname + " = '%s'" % (val,))
          else:
              exec(varname + " = %s" % (val,))
          if arg == "--dbConn":
              dbConn = val
          log.debug('%s = %s' % (varname, val,))
  
      ## START LOGGING ##
      startTime = times.get_now_sql_datetime()
      log.info(
          '--- STARTING TO RUN THE cl_utils.py AT %s' %
          (startTime,))
  
      if hostFlag:
          dbSettings = {
              'host': hostFlag,
              'user': userFlag,
              'password': passwdFlag,
              'db': dbNameFlag
          }
      elif settings:
          dbSettings = settings["database settings"]
  
      # CALL FUNCTIONS/OBJECTS
      if index:
          add_htm_ids_to_mysql_database_table(
              raColName=raCol,
              declColName=decCol,
              tableName=tableName,
              dbConn=dbConn,
              log=log,
              primaryIdColumnName=primaryIdCol,
              reindex=forceFlag,
              dbSettings=dbSettings
          )
  
      if search:
          cs = conesearch(
              log=log,
              dbConn=dbConn,
              tableName=tableName,
              columns=False,
              ra=ra,
              dec=dec,
              radiusArcsec=float(radius),
              separations=True,
              distinct=False,
              sqlWhere=False
          )
          matchIndies, matches = cs.search()
          if not renderFlag:
              print matches.table()
          elif renderFlag == "json":
              print matches.json()
          elif renderFlag == "csv":
              print matches.csv()
          elif renderFlag == "yaml":
              print matches.yaml()
          elif renderFlag == "md":
              print matches.markdown()
          elif renderFlag == "table":
              print matches.markdown()
          elif renderFlag == "mysql":
              print matches.mysql(tableName=resultsTable)
  
      if level:
          from HMpTy import HTM
          mesh = HTM(
              depth=int(level),
              log=log
          )
  
          htmids = mesh.lookup_id(ra, dec)
          print htmids[0]
  
      if "dbConn" in locals() and dbConn:
          dbConn.commit()
          dbConn.close()
      ## FINISH LOGGING ##
      endTime = times.get_now_sql_datetime()
      runningTime = times.calculate_time_difference(startTime, endTime)
      log.info('-- FINISHED ATTEMPT TO RUN THE cl_utils.py AT %s (RUNTIME: %s) --' %
               (endTime, runningTime, ))
  
      return