Example #1
0
def package_view(pkgname):
	try:
		pkg = db.get_pkg(pkgname)
	except KeyError:
		pkg = dummy.aurpkg(pkgname)
	building_arch = None
	try:
		status = db.get_status()
		if status['building'] == pkgname:
			building_arch = status['arch']
	except KeyError:
		pass
	results = {}
	builds = {}
	for arch in pkg['arch']:
		if building_arch == arch or building_arch is not None and arch == 'any':
			results[arch] = {'rtype': 'building', 'rvalue': {'name': pkgname, 'build_arch': building_arch}}
		else:
			results[arch] = db.get_result(pkgname, build_arch=arch)
		if not results[arch]:
			if arch in AurBSConfig().architectures or arch == 'any':
				results[arch] = {'rtype': 'scheduled'}
			else:
				results[arch] = {'rtype': 'disabled'}
		try:
			builds[arch] = find_pkg_files(pkgname, directory=repodir(arch))[0]
		except (IndexError, FileNotFoundError):
			pass
	local_depends = filter_dependencies([pkg['depends']], local=True)
	required_by = db.get_pkg_required_by(pkgname)
	return render_template("package_view.html", pkg=pkg, results=results, local_depends=local_depends, required_by=required_by, builds=builds)
Example #2
0
def package_list():
    pkgs = []
    query = request.args.get('query', None)
    for pkgname in AurBSConfig().aurpkgs:
        try:
            pkg = db.get_pkg(pkgname)
        except KeyError:
            pkg = dummy.aurpkg(pkgname)
        if query:
            if query not in pkg['name']:
                continue
        pkgs.append(pkg)
    if query and len(pkgs) == 1:
        return redirect(url_for('package_view', pkgname=pkgs[0]['name']))
    pkgs = sorted(pkgs, key=lambda i: i['name'])
    return render_template("package_list.html", pkgs=pkgs)
Example #3
0
def package_list():
	pkgs = []
	query = request.args.get('query', None)
	for pkgname in AurBSConfig().aurpkgs:
		try:
			pkg = db.get_pkg(pkgname)
		except KeyError:
			pkg = dummy.aurpkg(pkgname)
		if query:
			if query not in pkg['name']:
				continue
		pkgs.append(pkg)
	if query and len(pkgs) == 1:
		return redirect(url_for('package_view', pkgname=pkgs[0]['name']))
	pkgs = sorted(pkgs, key=lambda i: i['name'])
	return render_template("package_list.html", pkgs=pkgs)
Example #4
0
def package_view(pkgname):
    try:
        pkg = db.get_pkg(pkgname)
    except KeyError:
        pkg = dummy.aurpkg(pkgname)
    building_arch = None
    try:
        status = db.get_status()
        if status['building'] == pkgname:
            building_arch = status['arch']
    except KeyError:
        pass
    results = {}
    builds = {}
    for arch in pkg['arch']:
        if building_arch == arch or building_arch is not None and arch == 'any':
            results[arch] = {
                'rtype': 'building',
                'rvalue': {
                    'name': pkgname,
                    'build_arch': building_arch
                }
            }
        else:
            results[arch] = db.get_result(pkgname, build_arch=arch)
        if not results[arch]:
            if arch in AurBSConfig().architectures or arch == 'any':
                results[arch] = {'rtype': 'scheduled'}
            else:
                results[arch] = {'rtype': 'disabled'}
        try:
            builds[arch] = find_pkg_files(pkgname, directory=repodir(arch))[0]
        except (IndexError, FileNotFoundError):
            pass
    local_depends = filter_dependencies([pkg['depends']], local=True)
    required_by = db.get_pkg_required_by(pkgname)
    return render_template("package_view.html",
                           pkg=pkg,
                           results=results,
                           local_depends=local_depends,
                           required_by=required_by,
                           builds=builds)
Example #5
0
File: db.py Project: asdil12/aurbs
	def set_result(self, pkgname, build_arch, rtype, **kwargs):
		# arch via pkg from db
		# rtype = problem | build
		self._cleanup_results(pkgname)
		try:
			pkg = self.get_pkg(pkgname)
			arch = "any" if pkg['arch'][0] == "any" else build_arch
		except KeyError:
			pkg = dummy.aurpkg(pkgname)
			arch = build_arch
		setv = {
			"name": pkg['name'],
			"arch": arch,
			"build_arch": build_arch,
			"date": datetime.datetime.utcnow(),
			"pkg": pkg['_id']
		}
		if rtype == 'build':
			setv.update({
				"linkdepends": kwargs['linkdepends'],
				"release": kwargs['release'],
				"version": pkg['version']
			})
		elif rtype == 'problem':
			setv.update({
				"type": kwargs['ptype']
			})
			if kwargs['ptype'] in ['blocked_depends', 'missing_depends']:
				setv.update({
					"depends": kwargs['depends']
				})
			elif kwargs['ptype'] == 'fail':
				setv.update({
					"linkdepends": kwargs['linkdepends'],
					"version": pkg['version']
				})
		try:
			setr = self.get_result(pkgname, build_arch=build_arch, rtype=rtype)
			self._db["%ss" % rtype].update({'_id': setr['_id']}, setv)
		except KeyError:
			setr = self._db["%ss" % rtype].insert(setv)
Example #6
0
	def set_result(self, pkgname, build_arch, rtype, **kwargs):
		# arch via pkg from db
		# rtype = problem | build
		self._cleanup_results(pkgname)
		try:
			pkg = self.get_pkg(pkgname)
			arch = "any" if pkg['arch'][0] == "any" else build_arch
		except KeyError:
			pkg = dummy.aurpkg(pkgname)
			arch = build_arch
		setv = {
			"name": pkg['name'],
			"arch": arch,
			"build_arch": build_arch,
			"date": datetime.datetime.utcnow(),
			"pkg": pkg['_id']
		}
		if rtype == 'build':
			setv.update({
				"linkdepends": kwargs['linkdepends'],
				"release": kwargs['release'],
				"version": pkg['version']
			})
		elif rtype == 'problem':
			setv.update({
				"type": kwargs['ptype']
			})
			if kwargs['ptype'] in ['blocked_depends', 'missing_depends']:
				setv.update({
					"depends": kwargs['depends']
				})
			elif kwargs['ptype'] == 'fail':
				setv.update({
					"linkdepends": kwargs['linkdepends'],
					"version": pkg['version']
				})
		try:
			setr = self.get_result(pkgname, build_arch=build_arch, rtype=rtype)
			self._db["%ss" % rtype].update({'_id': setr['_id']}, setv)
		except KeyError:
			setr = self._db["%ss" % rtype].insert(setv)