published

bannerMaker

Create tidy text based banners for CLI based systems, servers and appliances.

Author: Brett Verney

Version: v1.1 | 22-09-2023

As a Network Engineer I feel I have wasted far too many hours trying to centre text while creating Message of the Day and Authentication Failure banners for CLI based network infrastructure i.e. Cisco and Aruba.

This tool takes away that pain.

Really though, it takes one or more paragraphs of text and centres it between a box depicted by asterisks. Nothing more, nothing less.

It also preserves blank lines which other tools don't without great difficulty.

Requirements

  • Python 3+
  • Python Libraries
    • parawrap

Basic Script Usage

python bannerMaker.py <input_file>


Where <input_file> is a text file containing one or more paragraphs of text.

The resulting banner will be output to banner.txt

Example

A file named input.txt contains the following text:

bannerMaker input example1

Executing the script and specifying the input.txt file as an argument:

python bannerMaker.py input.txt

Creates a file named banner.txt containing the following:

bannerMaker output example1

Another example:

bannerMaker output example2

The whitespace is preserved by utilising 'space' characters instead of tabs so that the output can copied and pasted directly to the CLI or config file as is.

Customisation

The script uses box width and text padding values that are considered safe for most terminal CLI appliances by default. These can be modified within the script itself. It is best to use even integers:

box_width = int(76)
padding = int(4)

You can also modify the heading at the top of the banner:

heading = ('WARNING')
View code on GitHub
  • Owner

  • Contributors

    +1Github contributor
  • Categories

  • Programming Languages

    Python
  • License

    MIT License

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.