Forge Home


Create Curses Command Front-end (CCFE) menus


10,436 latest version

2.9 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.1.2 (latest)
  • 0.1.1
  • 0.1.0
released Apr 15th 2013

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'erwbgy-ccfe', '0.1.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add erwbgy-ccfe
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install erwbgy-ccfe --version 0.1.2

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Tags: console, menu, ccfe


erwbgy/ccfe — version 0.1.2 Apr 15th 2013


Puppet module for creating menus and menu items using the Curses Command Front-end (CCFE) menu system -

Currently only tested on Redhat-like systems.


The recommended usage is to place the configuration in a hiera config file and just include the ccfe module in your puppet configuration:

include ccfe

Example hiera config:

ccfe::filestore:    'puppet:///files/ccfe',
ccfe::package_file: 'ccfe-1.57-1.noarch.rpm'
ccfe::menu_wrapper: 'true'

    description: 'Main Menu'
        description: 'User Services'
        action: 'menu:services'
        description:  'System Services'
        action: 'run:/sbin/service --status-all'
    description: 'Logscape'
    group: 'logscape'

    parent: 'services'
    description: 'logscape service: tail log file'
    action: 'run:/usr/bin/sudo -Hi -u logscape /usr/bin/tail -n 100 -f ~logscape/logs/logscape/current'
    parent: 'services'
    description: 'logscape service: status'
    action: 'run:/usr/bin/sudo -Hi -u logscape /sbin/sv -w60 stat logscape'
    parent: 'services'
    description: 'logscape service: status'
    action: 'run:/usr/bin/sudo -Hi -u logscape /sbin/sv -w60 stat logscape'

This example does the following:

  • Creates a /usr/bin/menu wrapper script that calls /usr/bin/ccfe menu to display the menu called menu

  • Creates a menu called menu with a User Services entry and a System Services entry

  • Selecting the System Services entry executes /sbin/service to show the status of system services

  • Selecting the User Services entry calls another menu called services

  • For members of the logscape group (and the owner root) the services menu has three items and selecting each of these runs a command. Non-members will not be able to access this menu.

If the contents of the menu is known beforehand then it can be constructed completely using the ccfe::menus configuration in hiera or calling the ccfe::menus parameterised class with an appropriate config parameter hash.

To dynamically add menu items the ccfe::items configuration in hiera or ccfe::items parameterised class can be used. The menus themselves must already have been created using ccfe::menus though.

If menu_wrapper is set to true, which it is by default, then your top-level menu should be called menu and will be displayed when the /usr/bin/menu command is executed.

If the group parameter is passed when creating a menu then only members of that group (and the owner - usually root) will be able to access the menu.


basedir: The base directory under which menus are created. Default: /usr/lib/ccfe/ccfe

filestore: The Puppet Master file store location where the CCFE package file is located. Default: puppet:///files/ccfe

package_file: The CCFE package filename. Default: ccfe-1.57-1.noarch.rpm

menu_wrapper: Whether or not to create the /usr/bin/menu wrapper script so users can just type menu. Default: true

workspace: The directory on the Puppet agent host that is used to store the package file before it is installed. Default: /root/ccfe


Class that creates ccfe::menu resources from a ccfe::menus hash in hiera or the config parameter.


title: The unique menu id.

description: The title that will be displayed above the menu. Default: $title

user: The user that the menu files will be owned by. Default: root

group: The group that the menu files will be owned by. Default: root

items: A hash of ccfe::item resources to create under this menu. Default: {}


Class that creates ccfe::item resources from a ccfe::menus hash in hiera or the config parameter.


title: The unique menu item id

parent: The parent menu that this item is part of. Required.

action: The action to take when this meny item is selected. Can be either menu:[menu name] to select another menu or run:[command] to execute a command. Required.

description: The menu item description that is displayed. Default: $title


Not all CCFE functionality is supported and in particular support for forms in missing.

The EPEL repository must be enabled so that the required perl-Curses dependency can be installed.


License: Apache License, Version 2.0

GitHub URL: