docs: def run(self, args):
          """
          Main entry point for script
          """
          logging.basicConfig(stream=sys.stdout, level=logging.INFO)
  
          configuration = self.configuration
          if args.ltr:
              langs = configuration.ltr_langs
          elif args.rtl:
              langs = configuration.rtl_langs
          else:
              langs = configuration.translated_locales
  
          for locale in langs:
              merge_files(configuration, locale, fail_if_missing=args.strict)
          # Dummy text is not required. Don't raise exception if files are missing.
          for locale in configuration.dummy_locales:
              merge_files(configuration, locale, fail_if_missing=False)
          # Merge the source locale, so we have the canonical .po files.
          if configuration.source_locale not in langs:
              merge_files(configuration, configuration.source_locale, fail_if_missing=args.strict)
  
          compile_cmd = 'django-admin.py compilemessages -v{}'.format(args.verbose)
          if args.verbose:
              stderr = None
          else:
              stderr = DEVNULL
          execute(compile_cmd, working_directory=configuration.root_dir, stderr=stderr)
  
          # Check for any mapped languages and copy directories around accordingly
          for source_locale, dest_locale in configuration.edx_lang_map.items():
              source_dirname = configuration.get_messages_dir(source_locale)
              dest_dirname = configuration.get_messages_dir(dest_locale)
              LOG.info("Copying mapped locale %s to %s", source_dirname, dest_dirname)
  
              path.rmtree_p(path(dest_dirname))
              path.copytree(path(source_dirname), path(dest_dirname))