The rehash script, though undocumented and possibly unused at the moment, likely has some value to some users. Howver, it makes more sense to provide this command as a management command like 'retag'. Do this.
Signed-off-by: Stephen Finucane <[email protected]> --- patchwork/bin/rehash.py | 34 ---------------------- patchwork/management/commands/rehash.py | 50 +++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 34 deletions(-) delete mode 100755 patchwork/bin/rehash.py create mode 100644 patchwork/management/commands/rehash.py diff --git a/patchwork/bin/rehash.py b/patchwork/bin/rehash.py deleted file mode 100755 index c44e49b..0000000 --- a/patchwork/bin/rehash.py +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env python -# -# Patchwork - automated patch tracking system -# Copyright (C) 2008 Jeremy Kerr <[email protected]> -# -# This file is part of the Patchwork package. -# -# Patchwork 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 2 of the License, or -# (at your option) any later version. -# -# Patchwork 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 Patchwork; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -from patchwork.models import Patch -import sys - -if __name__ == '__main__': - if len(sys.argv) > 1: - patches = Patch.objects.filter(id__in = sys.argv[1:]) - else: - patches = Patch.objects.all() - - for patch in patches: - print patch.id, patch.name - patch.hash = None - patch.save() diff --git a/patchwork/management/commands/rehash.py b/patchwork/management/commands/rehash.py new file mode 100644 index 0000000..a694d96 --- /dev/null +++ b/patchwork/management/commands/rehash.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python +# +# Patchwork - automated patch tracking system +# Copyright (C) 2008 Jeremy Kerr <[email protected]> +# Copyright (C) 2015 Intel Corporation +# +# This file is part of the Patchwork package. +# +# Patchwork 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 2 of the License, or +# (at your option) any later version. +# +# Patchwork 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 Patchwork; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import sys + +from django.core.management.base import BaseCommand + +from patchwork.models import Patch + + +class Command(BaseCommand): + help = 'Update the hashes on existing patches' + args = '[<patch_id>...]' + + def handle(self, *args, **options): + query = Patch.objects + + if args: + query = query.filter(id_in=args) + else: + query = query.all() + + count = query.count() + + for i, patch in enumerate(query.iterator()): + patch.hash = None + patch.save() + if (i % 10) == 0: + self.stdout.write('%06d/%06d\r' % (i, count), ending='') + self.stdout.flush() + self.stdout.write('\ndone') -- 2.0.0 _______________________________________________ Patchwork mailing list [email protected] https://lists.ozlabs.org/listinfo/patchwork
