def handle(self, **options): source_language_code = options['source_language'] try: source_language = Language.objects.get(code=source_language_code) except Language.DoesNotExist as e: self.stdout.write('%s: Unknown language code.' % source_language_code) raise CommandError(e) fs_type, fs_url = parse_fs_url(options['fs']) code = options['code'] name = options['name'] or code.capitalize() try: project = Project.objects.create( code=code, fullname=name, treestyle='pootle_fs', checkstyle=options['checkstyle'], source_language=source_language) except ValidationError as e: raise CommandError(e) for filetype in options["filetypes"] or ["po"]: try: filetype = Format.objects.get(name=filetype) project.filetypes.add(filetype) except Format.DoesNotExist as e: raise CommandError(e) project.config['pootle_fs.fs_type'] = fs_type project.config['pootle_fs.fs_url'] = fs_url project.config['pootle_fs.translation_mappings'] = { 'default': options['translation_mapping'] } if options['sync']: try: plugin = FSPlugin(project) plugin.fetch() plugin.add() plugin.sync() except FSFetchError as e: project.delete() raise CommandError(e)
def handle(self, **options): source_language_code = options['source_language'] try: source_language = Language.objects.get(code=source_language_code) except Language.DoesNotExist as e: self.stdout.write('%s: Unknown language code.' % source_language_code) raise CommandError(e) fs_type, fs_url = parse_fs_url(options['fs']) code = options['code'] name = options['name'] or code.capitalize() try: project = Project.objects.create( code=code, fullname=name, checkstyle=options['checkstyle'], source_language=source_language) except ValidationError as e: raise CommandError(e) for filetype in options["filetypes"] or ["po"]: try: filetype = Format.objects.get(name=filetype) project.filetypes.add(filetype) except Format.DoesNotExist as e: raise CommandError(e) project.config['pootle_fs.fs_type'] = fs_type project.config['pootle_fs.fs_url'] = fs_url project.config['pootle_fs.translation_mappings'] = { 'default': options['translation_mapping'] } if options['sync']: try: plugin = FSPlugin(project) plugin.fetch() plugin.add() plugin.sync() except FSFetchError as e: project.delete() raise CommandError(e)
def handle(self, **options): source_language_code = options['source_language'] try: source_language = Language.objects.get(code=source_language_code) except Language.DoesNotExist as e: self.stdout.write('%s: Unknown language code.' % source_language_code) raise CommandError(e) fs_type, fs_url = parse_fs_url(options['fs']) code = options['code'] name = options['name'] or code.capitalize() try: project = Project.objects.create( code=code, fullname=name, localfiletype=options['file_type'], treestyle='none', checkstyle=options['checkstyle'], source_language=source_language ) project.update_all_cache() except IntegrityError as e: self.stdout.write('Project code "%s" already exists.' % options['code']) raise CommandError(e) project.config['pootle_fs.fs_type'] = fs_type project.config['pootle_fs.fs_url'] = fs_url project.config['pootle_fs.translation_paths'] = { 'default': options['translation_path'] } if options['sync']: plugin = FSPlugin(project) plugin.fetch() plugin.sync()
def test_parse_fs_url(fs, fs_type, fs_url): assert (fs_type, fs_url) == parse_fs_url(fs)