docs: def defpm(name, *lines):
      'define a new package manager'
  
      @register_macro(name, group='package managers')
      @shell_escape_args
      def package_manager(*packages):
          if not packages:
              return
          sh_packages = ' '.join(pkg for pkg in packages)
          expanded_lines = [line.format(sh_packages) for line in lines]
          return eval([['run'] + expanded_lines])
  
      package_manager.__doc__ = "install packages with {}".format(name)