From f42916c6f64ebd0412e985be77aebc29c214e362 Mon Sep 17 00:00:00 2001 From: Josue Kouka Date: Wed, 14 Mar 2018 18:32:37 +0100 Subject: [PATCH 2/2] use argparse in user migration command (#22529) --- .../mandaye/management/commands/migrate-users.py | 36 +++++++++------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/mandayejs/mandaye/management/commands/migrate-users.py b/mandayejs/mandaye/management/commands/migrate-users.py index 3fd8471..d41b3c4 100644 --- a/mandayejs/mandaye/management/commands/migrate-users.py +++ b/mandayejs/mandaye/management/commands/migrate-users.py @@ -4,7 +4,6 @@ import csv import json import ldif import logging -from optparse import make_option from django.core.management.base import BaseCommand from django.db import IntegrityError @@ -29,41 +28,34 @@ def get_issuer(): class Command(BaseCommand): - args = '' help = 'Migrate users from ldif file or csv file' - option_list = BaseCommand.option_list + ( - make_option( + def add_arguments(self, parser): + parser.add_argument('filename', metavar='FILENAME', type=str, + help='name of file to import') + parser.add_argument( '--ldap', action='store_true', default=False, help='Migrate users from a ldap dump file' - ), - make_option( + ) + parser.add_argument( '--csv', action='store_true', default=False, help='Migrate users from a csv file' ) - ) - - def handle(self, *args, **kwargs): - if len(args) < 1: - self.stdout.write('An input file is required') - return False + def handle(self, filename, *args, **kwargs): if kwargs.get('csv'): - for filename in args: - data = self.get_csv_data(filename) - self.migrate(data) + data = self.get_csv_data(filename) + self.migrate(data) else: - for filename in args: - data = self.get_ldif_data(filename) - data = [d[1] for d in data] - data = [ - {k: ''.join(v) for k, v in d.items()} for d in data - ] - self.migrate(data) + data = self.get_ldif_data(filename) + data = [d[1] for d in data] + data = [ + {k: ''.join(v) for k, v in d.items()} for d in data] + self.migrate(data) def get_ldif_data(self, filename): with open(filename, 'rb') as fd: -- 2.11.0