~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/status.py

merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
398
398
            (2, 3), None))
399
399
 
400
400
 
401
 
hooks = StatusHooks()
402
 
 
403
 
 
404
401
class StatusHookParams(object):
405
402
    """Object holding parameters passed to post_status hooks.
406
403
 
441
438
            self.old_tree, self.new_tree, self.to_file, self.versioned,
442
439
            self.show_ids, self.short, self.verbose)
443
440
 
 
441
 
 
442
def _show_shelve_summary(params):
 
443
    """post_status hook to display a summary of shelves.
 
444
 
 
445
    :param params: StatusHookParams.
 
446
    """
 
447
    get_shelf_manager = getattr(params.new_tree, 'get_shelf_manager', None)
 
448
    if get_shelf_manager is None:
 
449
        return
 
450
    manager = get_shelf_manager()
 
451
    shelves = manager.active_shelves()
 
452
    if shelves:
 
453
        singular = '%d shelf exists. '
 
454
        plural = '%d shelves exist. '
 
455
        if len(shelves) == 1:
 
456
            fmt = singular
 
457
        else:
 
458
            fmt = plural
 
459
        params.to_file.write(fmt % len(shelves))
 
460
        params.to_file.write('See "bzr shelve --list" for details.\n')
 
461
 
 
462
 
 
463
hooks = StatusHooks()
 
464
 
 
465
 
 
466
hooks.install_named_hook('post_status', _show_shelve_summary,
 
467
    'bzr status')
 
468