from __future__ import absolute_import

from django.core.management.base import BaseCommand

from zerver.lib.actions import do_rename_stream
from zerver.models import Realm, get_realm

class Command(BaseCommand):
    help = """Change the stream name for a realm.

Usage: python manage.py rename-stream <domain> <old name> <new name>"""

    def handle(self, *args, **options):
        if len(args) != 3:
            print "Please provide a domain and the old and new names."
            exit(1)

        domain, old_name, new_name = args

        try:
            realm = get_realm(domain)
        except Realm.DoesNotExist:
            print "Unknown domain %s" % (domain,)
            exit(1)

        do_rename_stream(realm, old_name, new_name)

@@ -178,16 +178,28 @@
 _realm%0A%0A
+import sys%0A%0A
 class Co
@@ -542,16 +542,63 @@
 e = args
+%0A        encoding = sys.getfilesystemencoding()
 %0A%0A      
@@ -788,20 +788,79 @@
 old_name
-, new_name
+.decode(encoding),%0A                         new_name.decode(encoding)
 )%0A

support non-ASCII stream names.