summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Hopkins <marduk@gentoo.org>2005-10-04 20:23:56 +0000
committerAlbert Hopkins <marduk@gentoo.org>2005-10-04 20:23:56 +0000
commit9cde1b3ccdca32853ce6e28dd24508ec2d2a1f89 (patch)
treeaf6c227b9984a442a648f39a7218f773206c2068
parent* sql/create_ebuild.sql: Added "iuse" column to ebuild table (diff)
downloadgentoo-9cde1b3ccdca32853ce6e28dd24508ec2d2a1f89.tar.gz
gentoo-9cde1b3ccdca32853ce6e28dd24508ec2d2a1f89.tar.bz2
gentoo-9cde1b3ccdca32853ce6e28dd24508ec2d2a1f89.zip
Added 'rebuild' feature to ebuilddb.py that will rebuild the database but
not add/remove any new/old packages. This pretty much makes util.py futile so it may be removed in the future.
-rw-r--r--src/packages/util/ebuilddb.py25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/packages/util/ebuilddb.py b/src/packages/util/ebuilddb.py
index 85de627700..78230e5955 100644
--- a/src/packages/util/ebuilddb.py
+++ b/src/packages/util/ebuilddb.py
@@ -107,7 +107,7 @@ def create_ebuild_record(db, ebinfo):
'%(depend)s, %(rdepend)s, %(pdepend)s)', ebinfo)
except MySQLdb.MySQLError, data:
logging.error('error occorred: create_ebuild_record')
- loggin.error('error: %s' % data)
+ logging.error('error: %s' % data)
def update_ebuild_record(db, ebinfo):
"""Create a database record according to ebinfo dict. Ebuild must already
@@ -201,8 +201,13 @@ def is_masked(ebuild):
"""Return true if packages is masked in tree"""
return (not TREE.visible(['%(category)s/%(name)s-%(version)s' % ebuild]))
-def build():
- """Update/Create ebuild/packages in tree based on what's in portage"""
+def build(rebuild = False):
+ """
+ Update/Create ebuild/packages in tree based on what's in portage
+
+ If rebuild is True, it will rebuild the database. i.e. it will update
+ all records and create no new ones.
+ """
db = config.db
for ebuild in find_ebuilds():
@@ -217,13 +222,17 @@ def build():
fields['time'] = get_mtime(fields)
fields['masked'] = int(is_masked(fields))
- if not result:
+ if not (result or rebuild):
try:
create_ebuild_record(db, fields)
except MySQLdb.MySQLError:
print 'error creating record for %s/%s-%s' % (
fields['category'], fields['name'], fields['version'])
raise
+ elif result and rebuild:
+ fields['prevarch'] = result[6]
+ fields['arch'] = [4]
+ update_ebuild_record(db, fields)
elif result[4].split(',') != fields['archs'].split(','):
# keywords change, update db
fields['prevarch'] = result[4]
@@ -273,6 +282,10 @@ def purge():
if __name__ == '__main__':
- build()
- purge()
+ rebuild = False
+ if len(sys.argv) == 2 and sys.argv[1] == 'rebuild':
+ sys.stdout.write('Rebuilding...\n')
+ rebuild = True
+ build(rebuild = rebuild)
+ rebuild or purge()
sys.exit(0)