Create accepts a custom name as identifier
authorFred <fmcell@gmail.com>
Sat, 10 Aug 2013 10:43:47 +0000 (18:43 +0800)
committerFrederic Massart <fred@moodle.com>
Mon, 2 Sep 2013 03:10:28 +0000 (11:10 +0800)
lib/commands/create.py
lib/workplace.py

index a16ebc0..41ac79a 100644 (file)
@@ -73,6 +73,16 @@ class CreateCommand(Command):
                 }
             ),
             (
+                ['-n', '--identifier'],
+                {
+                    'action': 'store',
+                    'default': None,
+                    'help': 'use this identifier instead of generating one. The flag --suffix will be used. ' +
+                        'Do not use when creating multiple versions at once',
+                    'metavar': 'name',
+                }
+            ),
+            (
                 ['-s', '--suffix'],
                 {
                     'action': 'store',
@@ -107,6 +117,7 @@ class CreateCommand(Command):
                     'suffix': suffix,
                     'engine': engine,
                     'integration': args.integration,
+                    'identifier': args.identifier,
                     'install': args.install,
                     'run': args.run
                 }
@@ -125,7 +136,7 @@ class CreateCommand(Command):
 
         engine = args.engine
         version = args.version
-        name = self.Wp.generateInstanceName(version, integration=args.integration, suffix=args.suffix)
+        name = self.Wp.generateInstanceName(version, integration=args.integration, suffix=args.suffix, identifier=args.identifier)
 
         # Wording version
         versionNice = version
index 44cb97a..d9bb020 100644 (file)
@@ -159,20 +159,25 @@ class Workplace(object):
         if DB and dbname and DB.dbexists(dbname):
             DB.dropdb(dbname)
 
-    def generateInstanceName(self, version, integration=False, suffix=''):
+    def generateInstanceName(self, version, integration=False, suffix='', identifier=None):
         """Creates a name (identifier) from arguments"""
 
-        # Wording version
-        if version == 'master':
-            prefixVersion = C.get('wording.prefixMaster')
+        if identifier != None:
+            # If an identifier is passed, we use it regardless of the other parameters.
+            # Except for suffix.
+            name = identifier.replace(' ', '_')
         else:
-            prefixVersion = version
+            # Wording version
+            if version == 'master':
+                prefixVersion = C.get('wording.prefixMaster')
+            else:
+                prefixVersion = version
 
-        # Generating name
-        if integration:
-            name = C.get('wording.prefixIntegration') + prefixVersion
-        else:
-            name = C.get('wording.prefixStable') + prefixVersion
+            # Generating name
+            if integration:
+                name = C.get('wording.prefixIntegration') + prefixVersion
+            else:
+                name = C.get('wording.prefixStable') + prefixVersion
 
         # Append the suffix
         if suffix != None and suffix != '':