예제 #1
0
파일: importer.py 프로젝트: csmart/mydistro
def import_static_values():
  a = Arch(name='noarch', description='Architecture Independant')
  a.save()

  a = Arch(name='i386', description='32-bit Architecture\n\nIntel i386, AMD 386, or above.')
  a.save()

  a = Arch(name='i486', description='32-bit Architecture\n\nIntel 486, and AMD 486, along with other less known brands of 2nd Generation 32-bit CPUs')
  a.save()

  a = Arch(name='i586', description='32-bit Architecture\n\nPentiums MMX, AMD-K5.')
  a.save()

  a = Arch(name='i686', description='32-bit Architecture\n\nIntel Pentium Pro/II/III, AMD K6/Athlon/T-Bird/T-Bred/Duron')
  a.save()

  a = Arch(name='x86_64', description='64-bit Architecture')
  a.save()
예제 #2
0
파일: importer.py 프로젝트: csmart/mydistro
def import_new_repo(path):
  repo = path[len(base_path) + 1:]
  repo_components = repo.split('/')

  # let's build the arch object
  repo_arch = repo_components[0]

  a = Arch.objects.filter(name=repo_arch)
  if not a:
    a = Arch(name=repo_arch)
    a.save()
  else:
    a = a[0]

  repo_name = repo_components[2]
  repo_ver = repo_components[1]

  # let's build the repo object (but check if it exists first)
  r = Repo.objects.filter(name=repo_name, arch=a)

  if not r:
    r = Repo(name=repo_name, version=repo_ver, modify_date=datetime.now())
    r.save()
    r.arch.add(a)
    r.save()
  else:
    r = r[0]

  '''
  # print some repository love
  print "Repo: %s" % (repo_components[2])
  print "  Arch: %s" % (repo_components[0])
  print "  Version: %s" % (repo_components[1])
  print "  Primary DB: %s" % (path)
  '''

  # open the database for reading and scouring
  conn = sqlite3.connect(path)
  c = conn.cursor()

  c.execute('SELECT name, version, description, rpm_license, url, pkgId, pkgKey, arch, size_installed, size_package FROM packages')

  for l in c:
    # see if our package already exists
    p = Package.objects.filter(name=l[0])

    if l[2] is None:
      package_description = "";
    else:
      package_description = l[2]

    if l[4] is None:
      package_url = "";
    else:
      package_url = l[4]

    '''
    # print some package love
    print "Package: %s" % (l[0])
    print "  Version: %s" % (l[1])
    print "  URL: %s" % (package_url)
    print "  Description: %s" % (l[2])
    print "  License: %s" % (l[3])
    print "  Installed Size: %s" % (l[5])
    print "  UUID: %s" % (l[6])
    '''
    # create as required
    if not p:
      p = Package(name=l[0], version=l[1], description=package_description, license=l[3], url=package_url, modify_date=datetime.now())
      p.save()

      p_a = Arch.objects.filter(name=l[7])
      if not p_a:
        p_a = Arch(name=l[7], description='unknown arch, please fix.')
        p_a.save()
      else:
        p_a = p_a[0]

      # establish the details specific to the package/arch/repo combination
      d = PackageArch(package=p, repo=r, arch=p_a, installed_size=l[8], package_size=l[9], package_uuid=l[5])
      d.save()

  c.close()