changeset 7259:6e270cedc8aa

setup-db: perform an initial repository scan as stated by the docs (Issue #302) The documentation, as well as the prompt text inside setup-db itself, states that the repository root location will be scanned automatically for existing repositories. However, this is not actually the case. Only exception is when the 'initial_repo_scan' is set to True in the ini file; in that case the scan is done on each start of Kallithea. Add the required repo scan logic at the end of setup-db, after setting up the application completely (the database has only just been set up). The app setup code from BasePasterCommand is duplicated - this command doesn't fit in and need to run both before and after database creation. The scan call from kallithea/config/app_cfg.py is also duplicated - that will be removed next.
author Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
date Tue, 01 May 2018 21:59:03 +0200
parents 6e75963503cc
children 52544ad8a946
files kallithea/lib/paster_commands/setup_db.py
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/paster_commands/setup_db.py	Mon Apr 23 22:06:37 2018 +0200
+++ b/kallithea/lib/paster_commands/setup_db.py	Tue May 01 21:59:03 2018 +0200
@@ -23,6 +23,7 @@
 import sys
 import paste.deploy
 
+import kallithea
 from kallithea.lib.db_manage import DbManage
 from kallithea.lib.paster_commands.common import BasePasterCommand
 from kallithea.model.meta import Session
@@ -103,4 +104,14 @@
         dbmanage.populate_default_permissions()
         Session().commit()
 
+        # initial repository scan
+        kallithea.config.middleware.make_app_without_logging(
+                self.config.global_conf, **self.config.local_conf)
+        added, _ = kallithea.lib.utils.repo2db_mapper(kallithea.model.scm.ScmModel().repo_scan())
+        if added:
+            print 'Initial repository scan: added following repositories:'
+            print '\t','\n\t'.join(added)
+        else:
+            print 'Initial repository scan: no repositories found.'
+
         print 'Database set up successfully.'