changeset 7408:0080ffd8aea0

cli: convert 'gearbox repo-scan' into 'kallithea-cli repo-scan'
author Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
date Sun, 18 Nov 2018 20:02:17 +0100
parents 0e0dbb16fcbf
children 5eb6805c2a4f
files docs/dev/dbmigrations.rst kallithea/bin/kallithea_cli.py kallithea/bin/kallithea_cli_repo.py kallithea/lib/paster_commands/repo_scan.py setup.py
diffstat 5 files changed, 50 insertions(+), 66 deletions(-) [+]
line wrap: on
line diff
--- a/docs/dev/dbmigrations.rst	Sun Nov 18 20:02:17 2018 +0100
+++ b/docs/dev/dbmigrations.rst	Sun Nov 18 20:02:17 2018 +0100
@@ -31,7 +31,7 @@
 
     rm temp.db
     gearbox setup-db -c temp.ini --repos=/var/repos --user=doe --email doe@example.com --password=123456 --no-public-access --force-yes
-    gearbox repo-scan -c temp.ini
+    kallithea-cli repo-scan -c temp.ini
 
 5. Once satisfied with the schema changes, auto-generate a draft Alembic
    script using the development database that has *not* been upgraded.
--- a/kallithea/bin/kallithea_cli.py	Sun Nov 18 20:02:17 2018 +0100
+++ b/kallithea/bin/kallithea_cli.py	Sun Nov 18 20:02:17 2018 +0100
@@ -18,3 +18,4 @@
 # import commands (they will add themselves to the 'cli' object)
 import kallithea.bin.kallithea_cli_config
 import kallithea.bin.kallithea_cli_ishell
+import kallithea.bin.kallithea_cli_repo
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kallithea/bin/kallithea_cli_repo.py	Sun Nov 18 20:02:17 2018 +0100
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+"""
+This file was forked by the Kallithea project in July 2014 and later moved.
+Original author and date, and relevant copyright and licensing information is below:
+:created_on: Feb 9, 2013
+:author: marcink
+:copyright: (c) 2013 RhodeCode GmbH, and others.
+:license: GPLv3, see LICENSE.md for more details.
+"""
+import click
+import kallithea.bin.kallithea_cli_base as cli_base
+
+from kallithea.lib.utils import repo2db_mapper
+from kallithea.model.scm import ScmModel
+
+@cli_base.register_command(config_file_initialize_app=True)
+@click.option('--remove-missing', is_flag=True,
+        help='Remove missing repositories from the Kallithea database.')
+def repo_scan(remove_missing):
+    """Scan filesystem for repositories.
+
+    Search the configured repository root for new repositories and add them
+    into Kallithea.
+    Additionally, report repositories that were previously known to Kallithea
+    but are no longer present on the filesystem. If option --remove-missing is
+    given, remove the missing repositories from the Kallithea database.
+    """
+    click.echo('Now scanning root location for new repos ...')
+    added, removed = repo2db_mapper(ScmModel().repo_scan(),
+                                    remove_obsolete=remove_missing)
+    click.echo('Scan completed.')
+    if added:
+        click.echo('Added: %s' % ', '.join(added))
+    if removed:
+        click.echo('%s: %s' % ('Removed' if remove_missing else 'Missing',
+                          ', '.join(removed)))
--- a/kallithea/lib/paster_commands/repo_scan.py	Sun Nov 18 20:02:17 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-"""
-kallithea.lib.paster_commands.repo_scan
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-repo-scan gearbox command for Kallithea
-
-This file was forked by the Kallithea project in July 2014.
-Original author and date, and relevant copyright and licensing information is below:
-:created_on: Feb 9, 2013
-:author: marcink
-:copyright: (c) 2013 RhodeCode GmbH, and others.
-:license: GPLv3, see LICENSE.md for more details.
-"""
-
-
-
-from kallithea.model.scm import ScmModel
-from kallithea.lib.paster_commands.common import BasePasterCommand
-from kallithea.lib.utils import repo2db_mapper
-
-
-class Command(BasePasterCommand):
-    """Kallithea: Scan file system for repositories
-
-    Search under the repository root configured in the database,
-    all new repositories, and report missing ones with an option of removing them.
-    """
-
-    def take_action(self, args):
-        rm_obsolete = args.delete_obsolete
-        print 'Now scanning root location for new repos ...'
-        added, removed = repo2db_mapper(ScmModel().repo_scan(),
-                                        remove_obsolete=rm_obsolete)
-        print 'Scan completed.'
-        if added:
-            print 'Added: %s' % ', '.join(added)
-        if removed:
-            print '%s: %s' % ('Removed' if rm_obsolete else 'Missing',
-                              ', '.join(removed))
-
-    def get_parser(self, prog_name):
-        parser = super(Command, self).get_parser(prog_name)
-
-        parser.add_argument(
-            '--delete-obsolete',
-            action='store_true',
-            help="Use this flag do delete repositories that are "
-                 "present in Kallithea database but not on the filesystem",
-        )
-
-        return parser
--- a/setup.py	Sun Nov 18 20:02:17 2018 +0100
+++ b/setup.py	Sun Nov 18 20:02:17 2018 +0100
@@ -165,7 +165,6 @@
     install-iis=kallithea.lib.paster_commands.install_iis:Command
     make-index=kallithea.lib.paster_commands.make_index:Command
     make-rcext=kallithea.lib.paster_commands.make_rcextensions:Command
-    repo-scan=kallithea.lib.paster_commands.repo_scan:Command
     setup-db=kallithea.lib.paster_commands.setup_db:Command
     update-repoinfo=kallithea.lib.paster_commands.update_repoinfo:Command
     upgrade-db=kallithea.lib.dbmigrate:UpgradeDb