Mercurial > kallithea
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