コード例 #1
0
 def add_package(package):
   if package_filter and package.NAME not in package_filter:
     webports.log_verbose('Filtered out package: %s' % package.NAME)
     return
   if package.NAME not in packages:
     if include_deps:
       for dep in package.transitive_dependencies():
         if dep.NAME not in packages:
           packages.append(dep.NAME)
     packages.append(package.NAME)
     to_resolve.append(package)
コード例 #2
0
def check_mirror(options, package, mirror_listing):
  """Check that is package has is archive mirrors on Google cloud storage"""
  webports.log_verbose('Checking %s' % package.NAME)
  basename = package.get_archive_filename()
  if not basename:
    return

  if basename in mirror_listing:
    # already mirrored
    return

  if options.check:
    webports.log('update_mirror: Archive missing from mirror: %s' % basename)
    sys.exit(1)

  # Download upstream URL
  package.download(force_mirror=False)

  url = '%s/%s' % (MIRROR_GS, basename)
  gs_upload(options, package.download_location(), url)
コード例 #3
0
ファイル: update_mirror.py プロジェクト: dsagal/webports
def check_mirror(options, package, mirror_listing):
  """Check that is package has is archive mirrors on Google cloud storage"""
  webports.log_verbose('Checking %s' % package.NAME)
  basename = package.get_archive_filename()
  if not basename:
    return

  if basename in mirror_listing:
    # already mirrored
    return

  if options.check:
    webports.log('update_mirror: Archive missing from mirror: %s' % basename)
    sys.exit(1)

  # Download upstream URL
  package.download(force_mirror=False)

  url = '%s/%s' % (MIRROR_GS, basename)
  gs_upload(options, package.download_location(), url)
コード例 #4
0
def find_effected_packages(files, include_deps, package_filter):
    packages = []
    to_resolve = []

    def add_package(package):
        if package_filter and package.NAME not in package_filter:
            webports.log_verbose('Filtered out package: %s' % package.NAME)
            return
        if package.NAME not in packages:
            if include_deps:
                for dep in package.transitive_dependencies():
                    if dep.NAME not in packages:
                        packages.append(dep.NAME)
            packages.append(package.NAME)
            to_resolve.append(package)

    for filename in files:
        parts = filename.split(os.path.sep)
        if parts[0] != 'ports':
            webports.log_verbose('effected file outside of ports tree: %s' %
                                 filename)
            if any(
                    fnmatch.fnmatch(filename, ignore)
                    for ignore in IGNORE_FILES):
                continue
            return ['all']

        package_name = parts[1]
        pkg = webports.source_package.create_package(package_name)
        add_package(pkg)

    while to_resolve:
        pkg = to_resolve.pop()
        for r in pkg.reverse_dependencies():
            add_package(r)

    if package_filter:
        packages = [p for p in packages if p in package_filter]
    return packages
コード例 #5
0
def find_effected_packages(files, include_deps, package_filter):
  packages = []
  to_resolve = []

  def add_package(package):
    if package_filter and package.NAME not in package_filter:
      webports.log_verbose('Filtered out package: %s' % package.NAME)
      return
    if package.NAME not in packages:
      if include_deps:
        for dep in package.transitive_dependencies():
          if dep.NAME not in packages:
            packages.append(dep.NAME)
      packages.append(package.NAME)
      to_resolve.append(package)

  for filename in files:
    parts = filename.split(os.path.sep)
    if parts[0] != 'ports':
      webports.log_verbose('effected file outside of ports tree: %s' % filename)
      if any(fnmatch.fnmatch(filename, ignore) for ignore in IGNORE_FILES):
        continue
      return ['all']

    package_name = parts[1]
    pkg = webports.source_package.create_package(package_name)
    add_package(pkg)

  while to_resolve:
    pkg = to_resolve.pop()
    for r in pkg.reverse_dependencies():
      add_package(r)

  if package_filter:
    packages = [p for p in packages if p in package_filter]
  return packages