def wrapper(*args, **kwargs): repo = kwargs['repo'] if has_unpushed_changes(repo): print 'You have unpushed commits in local repo;' print 'Push it with command "pacman_push" and relaunch this command.' print return if has_uncommited_changes(): print 'You have uncommited changes in local repo;' print 'Commit it with command "pacman_push" and relaunch this command.' print return return func(*args, **kwargs)
def run(self, *args, **kwargs): self.logger = self.get_logger() repo = kwargs['repo'] count_of_unpushed = has_unpushed_changes(repo) if count_of_unpushed: self.logger.info('You have %s unpushed changes in local repo;' % count_of_unpushed) self.push_commits(repo) for package in Package.objects.filter(state=Package.STATE.UPDATED): package_id = package.id package_name = package.name package_data = { 'version': package.version, 'description': package.description, 'links': list(self.get_package_external_links(package_id)), } with open(get_package_json_file_path(package_name), 'wb') as f: self.logger.info('Re-create json formated file for package "%s".' % package_name) f.write(json.dumps(package_data, indent=4)) InternalFile.objects.filter(package__id=package.id).delete() package.state = Package.STATE.WAITING_FOR_DOWNLOAD package.save() for package in Package.objects.filter(state=Package.STATE.WAITING_FOR_DELETE): package_name = package.name self.logger.info('Delete package "%s".' % package_name) package.delete() os.remove(get_package_json_file_path(package_name)) if repo.is_dirty(untracked_files=True): self.logger.info('Commiting changes...') commit_repo(repo) self.push_commits(repo) else: self.logger.info('Already up-to-date.')
def handle_noargs(self, **options): repo = options['repo'] count_of_unpushed = has_unpushed_changes(repo) if count_of_unpushed: print 'You have %s unpushed changes in local repo;' print 'Push it with command "pacman_push".' print not_synced_states = [] def check_packages_by_state(state, message): packages = Package.objects.filter(state=state) if packages: not_synced_states.append(state) print message % len(packages) for package in packages: print '\t%s' % package.name check_packages_by_state(Package.STATE.UPDATED, 'You have %s updated packages, push it to repo.') check_packages_by_state(Package.STATE.WAITING_FOR_DELETE, 'You have %s waiting for delete packages, push it to repo.') check_packages_by_state(Package.STATE.WAITING_FOR_DOWNLOAD, 'You have %s waiting for download packages.') if not not_synced_states: print 'Packages already up-to-date.'