def get_version(self): changed = [] for key in ['pkgver', 'pkgrel', 'epoch']: old_val = getattr(self, key) new_val = self.get_from_pkgbuild(key) if new_val != old_val: changed.append((key, new_val)) setattr(self, key, new_val) if not changed: return self.version_str if self.name == "cnchi-dev" and not str(self.pkgver).endswith("0") and not True: event = self.tl_event results = db.scan_iter('timeline:%s:*' % event, 100) for k in results: db.delete(k) db.lrem('timeline:all', 0, event) return False version = self.pkgver if self.epoch and self.epoch != '' and self.epoch is not None: version = self.epoch + ':' + version version = version + '-' + self.pkgrel if version and version != '' and version is not None: self.version_str = version # logger.info('@@-package.py-@@ | pkgver is %s' % pkgver) else: version = self.version_str return version
def cache_buster(): if db.exists('antbs:misc:cache_buster:flag'): db.delete('antbs:misc:cache_buster:flag') return True elif user.is_authenticated(): return True return False
def maybe_update_pkgbuild_repo(): """ """ if not db.exists('PKGBUILD_REPO_UPDATED'): if db.setnx('PKGBUILD_REPO_LOCK', True): db.expire('PKGBUILD_REPO_LOCK', 300) try: if os.path.exists('/var/tmp/antergos-packages'): shutil.rmtree('/var/tmp/antergos-packages') subprocess.check_call(['git', 'clone', 'http://github.com/antergos/antergos-packages'], cwd='/var/tmp') db.setex('PKGBUILD_REPO_UPDATED', 350, True) except subprocess.CalledProcessError as err: logger.error(err) db.delete('PKGBUILD_REPO_UPDATED') db.delete('PKGBUILD_REPO_LOCK') return else: while not db.exists('PKGBUILD_REPO_UPDATED') and db.exists('PKGBUILD_REPO_LOCK'): time.sleep(2) return
def process_package_queue(): """ :param the_queue: :return: :raise ValueError: """ hook_queue = status.hook_queue logger.info(hook_queue) if hook_queue is None: raise ValueError('the_queue cannot be None') all_deps = [] if not db.exists('BUILD_REPO_UPDATED'): if db.setnx('BUILD_REPO_LOCK', True): db.expire('BUILD_REPO_LOCK', 300) try: subprocess.check_call( ['git', 'clone', 'http://github.com/antergos/antergos-packages.git'], cwd='/opt') subprocess.check_call(['chmod', '-R', 'a+rw', REPO_DIR], cwd='/opt') except subprocess.CalledProcessError: try: subprocess.check_call(['git', 'reset', '--soft', 'origin/master'], cwd='/opt/antergos-packages') subprocess.check_call(['git', 'pull'], cwd='/opt/antergos-packages') db.setex('BUILD_REPO_UPDATED', 350, True) except subprocess.CalledProcessError as err: logger.error(err) db.delete('BUILD_REPO_LOCK') else: while not db.exists('BUILD_REPO_UPDATED') and db.exists('BUILD_REPO_LOCK'): time.sleep(2) for pkg in hook_queue: logger.info(pkg) if pkg == '': continue pkg_obj = package.get_pkg_object(name=pkg) version = pkg_obj.get_version() if not version: status.hook_queue.remove(pkg_obj.name) if 'cnchi-dev' != pkg: logger.error('pkgbuild path is not valid for %s', pkg_obj.name) else: continue logger.info('Updating pkgver in database for %s to %s' % (pkg_obj.name, version)) status.current_status = 'Updating pkgver in database for %s to %s' % (pkg_obj.name, version) depends = pkg_obj.get_deps() if not pkg_obj.build_path or pkg_obj.build_path == '': paths = [os.path.join('/opt/antergos-packages/', pkg), os.path.join('/opt/antergos-packages/deepin_desktop', pkg), os.path.join('/opt/antergos-packages/cinnamon', pkg)] for p in paths: if os.path.exists(p): pkg_obj.build_path = p break if 'cnchi' in pkg: logger.info('cnchi package detected.') src = os.path.join('/var/tmp/antergos-packages/', pkg, 'cnchi') dest = os.path.join('/opt/antergos-packages/', pkg) remove(os.path.join(dest, 'cnchi')) shutil.move(src, dest) status.current_status = 'Fetching latest translations for %s from Transifex.' % pkg logger.info(status.current_status) cnchi_dir = '/opt/antergos-packages/%s' % pkg fetch_and_compile_translations(translations_for=["cnchi"], pkg_obj=pkg_obj) remove(os.path.join(cnchi_dir, 'cnchi/.git')) subprocess.check_output(['tar', '-cf', 'cnchi.tar', 'cnchi'], cwd='/opt/antergos-packages/%s' % pkg) elif 'numix-icon-theme-square' in pkg: src = os.path.join('/var/tmp/antergos-packages/', pkg, pkg) dest = os.path.join('/opt/antergos-packages/', pkg) shutil.move(src, dest) subprocess.check_output(['tar', '-cf', pkg + '.tar', pkg], cwd='/opt/antergos-packages/%s' % pkg) if depends and len(hook_queue) > 1: all_deps.append(depends) elif len(hook_queue) == 1: all_deps.append(1) return all_deps