public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Slava Bacherikov" <slava@bacherikov.org.ua>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/
Date: Mon, 18 Jun 2012 23:00:51 +0000 (UTC)	[thread overview]
Message-ID: <1340060441.b3156c48319c9773cf38b5ad3cc77c061c14bb49.bacher09@gentoo> (raw)

commit:     b3156c48319c9773cf38b5ad3cc77c061c14bb49
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Mon Jun 18 23:00:41 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Mon Jun 18 23:00:41 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=b3156c48

Add updating repository info to scan utility

---
 .../packages/management/commands/scanpackages.py   |    5 +++++
 gpackages/apps/packages/models.py                  |   10 +++++++++-
 gpackages/apps/packages/scan.py                    |   12 +++++++++---
 3 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/gpackages/apps/packages/management/commands/scanpackages.py b/gpackages/apps/packages/management/commands/scanpackages.py
index 97ed11e..71c308c 100644
--- a/gpackages/apps/packages/management/commands/scanpackages.py
+++ b/gpackages/apps/packages/management/commands/scanpackages.py
@@ -24,6 +24,11 @@ class Command(BaseCommand):
             dest='scan_all',
             default=False,
             help='Force updating'),
+        make_option('-r', '--update-repo',
+            action='store_true',
+            dest='update_repo',
+            default=False,
+            help='Update repository info'),
         make_option('--not-show-time',
             action='store_false',
             dest='show_time',

diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
index 5140911..1f7c6e8 100644
--- a/gpackages/apps/packages/models.py
+++ b/gpackages/apps/packages/models.py
@@ -91,7 +91,7 @@ class RepositoryModel(AbstractDateTimeModel):
         RepositorySourceModel.objects.bulk_create(ret)
 
     def clear_related_sources(self):
-        self.repositorysourcemodel_set.clear()
+        RepositorySourceModel.objects.filter(repository = self).delete()
 
     def update_related_sources(self, repo):
         self.clear_related_sources()
@@ -101,6 +101,14 @@ class RepositoryModel(AbstractDateTimeModel):
         self.add_related_feeds(repo)
         self.add_related_sources(repo)
 
+    def clear_related(self):
+        self.clear_related_feeds()
+        self.clear_related_sources()
+
+    def update_related(self, repo):
+        self.clear_related()
+        self.add_related(repo)
+
     def __unicode__(self):
         return self.name
 

diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py
index 76573ce..8d8fed9 100644
--- a/gpackages/apps/packages/scan.py
+++ b/gpackages/apps/packages/scan.py
@@ -125,6 +125,7 @@ class Scanner(object):
         self.is_show_time = bool(kwargs.get('show_time', True))
         self.is_scan_herds = bool(kwargs.get('scan_herds', True))
         self.force_update = bool(kwargs.get('force_update', False))
+        self.update_repo = bool(kwargs.get('update_repo', False))
         self.delete = bool(kwargs.get('delete', True))
         self.scan_repos_name = tuple(kwargs.get('repos',[]))
         self.scan_global_use_descr = bool(kwargs.get('scan_global_use', False))
@@ -141,11 +142,13 @@ class Scanner(object):
 
         if self.s_all:
             self.scan_all_repos(force_update = self.force_update,
-                                delete = self.delete)
+                                delete = self.delete,
+                                update_repo = self.update_repo)
         elif len(self.scan_repos_name) > 0:
             self.scan_repos_by_name(self.scan_repos_name,
                                     force_update = self.force_update,
-                                    delete = self.delete)
+                                    delete = self.delete,
+                                    update_repo = self.update_repo)
 
         if self.scan_global_use_descr:
             self.update_all_globals_uses_descriptions()
@@ -306,13 +309,16 @@ class Scanner(object):
         else:
             self.scan_repo(repo, **kwargs)
 
-    def scan_repo(self, repo, **kwargs):
+    def scan_repo(self, repo, update_repo = False, **kwargs):
         self.output("Scaning repository '%s'\n", repo.name, 3)
 
         repo_obj, repo_created = models.RepositoryModel \
             .objects.get_or_create(repo = repo)
 
         if not repo_created:
+            if update_repo:
+                repo_obj.update_metadata(repo)
+                repo_obj.update_related(repo)
             #Update modification time
             repo_obj.save(force_update = True)
         else:



             reply	other threads:[~2012-06-18 23:01 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-18 23:00 Slava Bacherikov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-08-26 23:00 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/ Slava Bacherikov
2012-08-22 17:55 Slava Bacherikov
2012-07-18 23:03 Slava Bacherikov
2012-07-17  9:42 Slava Bacherikov
2012-07-06 23:09 Slava Bacherikov
2012-07-05 23:27 Slava Bacherikov
2012-06-19  0:12 Slava Bacherikov
2012-06-13 22:15 Slava Bacherikov
2012-06-10 22:23 Slava Bacherikov
2012-06-10 17:51 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-03 16:19 Slava Bacherikov
2012-06-03 13:19 Slava Bacherikov
2012-06-01 21:28 Slava Bacherikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1340060441.b3156c48319c9773cf38b5ad3cc77c061c14bb49.bacher09@gentoo \
    --to=slava@bacherikov.org.ua \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox