code: def main(argv=None):
      
      # Parse arguments
      parser = argparse.ArgumentParser(
          prog="pelix.shell.console",
          parents=[make_common_parser()],
          description="Pelix Shell Console",
      )
  
      # Parse arguments
      args = parser.parse_args(argv)
  
      # Handle arguments
      init = handle_common_arguments(args)
  
      # Set the initial bundles
      bundles = [
          "pelix.ipopo.core",
          "pelix.shell.core",
          "pelix.shell.ipopo",
          "pelix.shell.completion.pelix",
          "pelix.shell.completion.ipopo",
          "pelix.shell.console",
      ]
      bundles.extend(init.bundles)
  
      # Use the utility method to create, run and delete the framework
      framework = pelix.create_framework(
          remove_duplicates(bundles), init.properties
      )
      framework.start()
  
      # Instantiate components
      init.instantiate_components(framework.get_bundle_context())
  
      try:
          framework.wait_for_stop()
      except KeyboardInterrupt:
          framework.stop()
docs: Entry point
  
      :param argv: Script arguments (None for sys.argv)
      :return: An exit code or None