cubicweb/cwctl.py
branch3.25
changeset 12120 707139a9eb00
parent 12068 a96c770b2ef1
child 12139 b5be819872bb
equal deleted inserted replaced
12119:c4ed3f6463f6 12120:707139a9eb00
    87             modes.append('web ui')
    87             modes.append('web ui')
    88             break
    88             break
    89     return modes
    89     return modes
    90 
    90 
    91 
    91 
       
    92 def available_cube_names(cwcfg):
       
    93     """Return a list of available cube names, with 'cubicweb_' prefix dropped.
       
    94     """
       
    95     def drop_prefix(cube):
       
    96         prefix = 'cubicweb_'
       
    97         if cube.startswith(prefix):
       
    98             cube = cube[len(prefix):]
       
    99         return cube
       
   100 
       
   101     return [drop_prefix(cube) for cube in cwcfg.available_cubes()]
       
   102 
       
   103 
    92 class InstanceCommand(Command):
   104 class InstanceCommand(Command):
    93     """base class for command taking 0 to n instance id as arguments
   105     """base class for command taking 0 to n instance id as arguments
    94     (0 meaning all registered instances)
   106     (0 meaning all registered instances)
    95     """
   107     """
    96     arguments = '[<instance>...]'
   108     arguments = '[<instance>...]'
   218 
   230 
   219         if mode in ('all', 'cubes'):
   231         if mode in ('all', 'cubes'):
   220             cfgpb = ConfigurationProblem(cwcfg)
   232             cfgpb = ConfigurationProblem(cwcfg)
   221             try:
   233             try:
   222                 cubesdir = pathsep.join(cwcfg.cubes_search_path())
   234                 cubesdir = pathsep.join(cwcfg.cubes_search_path())
   223                 namesize = max(len(x) for x in cwcfg.available_cubes())
   235                 cube_names = available_cube_names(cwcfg)
       
   236                 namesize = max(len(x) for x in cube_names)
   224             except ConfigurationError as ex:
   237             except ConfigurationError as ex:
   225                 print('No cubes available:', ex)
   238                 print('No cubes available:', ex)
   226             except ValueError:
   239             except ValueError:
   227                 print('No cubes available in %s' % cubesdir)
   240                 print('No cubes available in %s' % cubesdir)
   228             else:
   241             else:
   229                 print('Available cubes (%s):' % cubesdir)
   242                 print('Available cubes (%s):' % cubesdir)
   230                 for cube in cwcfg.available_cubes():
   243                 for cube in cube_names:
   231                     try:
   244                     try:
   232                         tinfo = cwcfg.cube_pkginfo(cube)
   245                         tinfo = cwcfg.cube_pkginfo(cube)
   233                         tversion = tinfo.version
   246                         tversion = tinfo.version
   234                         cfgpb.add_cube(cube, tversion)
   247                         cfgpb.add_cube(cube, tversion)
   235                     except (ConfigurationError, AttributeError) as ex:
   248                     except (ConfigurationError, AttributeError) as ex:
   358             templdirs = [cwcfg.cube_dir(cube)
   371             templdirs = [cwcfg.cube_dir(cube)
   359                          for cube in cubes]
   372                          for cube in cubes]
   360         except ConfigurationError as ex:
   373         except ConfigurationError as ex:
   361             print(ex)
   374             print(ex)
   362             print('\navailable cubes:', end=' ')
   375             print('\navailable cubes:', end=' ')
   363             print(', '.join(cwcfg.available_cubes()))
   376             print(', '.join(available_cube_names(cwcfg)))
   364             return
   377             return
   365         # create the registry directory for this instance
   378         # create the registry directory for this instance
   366         print('\n'+underline_title('Creating the instance %s' % appid))
   379         print('\n'+underline_title('Creating the instance %s' % appid))
   367         create_dir(config.apphome)
   380         create_dir(config.apphome)
   368         # cubicweb-ctl configuration
   381         # cubicweb-ctl configuration