513 distname = default_name |
513 distname = default_name |
514 |
514 |
515 longdesc = shortdesc = raw_input('Enter a short description for your cube: ') |
515 longdesc = shortdesc = raw_input('Enter a short description for your cube: ') |
516 if verbose: |
516 if verbose: |
517 longdesc = raw_input('Enter a long description (leave empty to reuse the short one): ') |
517 longdesc = raw_input('Enter a long description (leave empty to reuse the short one): ') |
|
518 dependencies = {} |
518 if verbose: |
519 if verbose: |
519 includes = self._ask_for_dependancies() |
520 dependencies = self._ask_for_dependencies() |
520 if len(includes) == 1: |
|
521 dependancies = '%r,' % includes[0] |
|
522 else: |
|
523 dependancies = ', '.join(repr(cube) for cube in includes) |
|
524 else: |
|
525 dependancies = '' |
|
526 context = {'cubename' : cubename, |
521 context = {'cubename' : cubename, |
527 'distname' : distname, |
522 'distname' : distname, |
528 'shortdesc' : shortdesc, |
523 'shortdesc' : shortdesc, |
529 'longdesc' : longdesc or shortdesc, |
524 'longdesc' : longdesc or shortdesc, |
530 'dependancies' : dependancies, |
525 'dependencies' : dict((dep, None) for dep in dependencies), |
531 'version' : cubicwebversion, |
526 'version' : cubicwebversion, |
532 'year' : str(datetime.now().year), |
527 'year' : str(datetime.now().year), |
533 'author': self['author'], |
528 'author': self['author'], |
534 'author-email': self['author-email'], |
529 'author-email': self['author-email'], |
535 'author-web-site': self['author-web-site'], |
530 'author-web-site': self['author-web-site'], |
536 } |
531 } |
537 copy_skeleton(skeldir, cubedir, context) |
532 copy_skeleton(skeldir, cubedir, context) |
538 |
533 |
539 def _ask_for_dependancies(self): |
534 def _ask_for_dependencies(self): |
540 from logilab.common.shellutils import ASK |
535 from logilab.common.shellutils import ASK |
541 from logilab.common.textutils import splitstrip |
536 from logilab.common.textutils import splitstrip |
542 includes = [] |
537 includes = [] |
543 for stdtype in ServerConfiguration.available_cubes(): |
538 for stdtype in ServerConfiguration.available_cubes(): |
544 answer = ASK.ask("Depends on cube %s? " % stdtype, |
539 answer = ASK.ask("Depends on cube %s? " % stdtype, |
545 ('N','y','skip','type'), 'N') |
540 ('N','y','skip','type'), 'N') |
546 if answer == 'y': |
541 if answer == 'y': |
547 includes.append(stdtype) |
542 includes.append(stdtype) |
548 if answer == 'type': |
543 if answer == 'type': |
549 includes = splitstrip(raw_input('type dependancies: ')) |
544 includes = splitstrip(raw_input('type dependencies: ')) |
550 break |
545 break |
551 elif answer == 'skip': |
546 elif answer == 'skip': |
552 break |
547 break |
553 return includes |
548 return includes |
554 |
549 |