コード例 #1
0
ファイル: decorators.py プロジェクト: Gr1N/sc-web
    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)
コード例 #2
0
ファイル: tasks.py プロジェクト: Gr1N/sc-web
    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.')
コード例 #3
0
ファイル: pacman_status.py プロジェクト: Gr1N/sc-web
    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.'