diff options
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rwxr-xr-x | cmd2.py | 7 | ||||
-rw-r--r-- | examples/.cmd2rc | 2 | ||||
-rwxr-xr-x | examples/alias_startup.py | 24 |
4 files changed, 35 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c590bea..7359ea08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,9 @@ * Added [quit_on_sigint](http://cmd2.readthedocs.io/en/latest/settingchanges.html#quit-on-sigint) attribute to enable canceling current line instead of quitting when Ctrl+C is typed * Added possibility of having readline history preservation in a SubMenu * Added [table_display.py](https://github.com/python-cmd2/cmd2/blob/master/examples/table_display.py) example to demonstrate how to display tabular data - * Added command aliasing with ``alias`` command + * Added command aliasing with ``alias`` and ``unalias`` commands + * Added the ability to load an initialization script at startup + * See [alias_startup.py](https://github.com/python-cmd2/cmd2/blob/master/examples/alias_startup.py) for an example ## 0.8.1 (March 9, 2018) @@ -1088,7 +1088,7 @@ class Cmd(cmd.Cmd): 'timing': 'Report execution times'} def __init__(self, completekey='tab', stdin=None, stdout=None, persistent_history_file='', - persistent_history_length=1000, use_ipython=False, transcript_files=None): + persistent_history_length=1000, startup_script=None, use_ipython=False, transcript_files=None): """An easy but powerful framework for writing line-oriented command interpreters, extends Python's cmd package. :param completekey: str - (optional) readline name of a completion key, default to Tab @@ -1096,6 +1096,7 @@ class Cmd(cmd.Cmd): :param stdout: (optional) alternate output file object, if not specified, sys.stdout is used :param persistent_history_file: str - (optional) file path to load a persistent readline history from :param persistent_history_length: int - (optional) max number of lines which will be written to the history file + :param startup_script: str - (optional) file path to a a script to load and execute at startup :param use_ipython: (optional) should the "ipy" command be included for an embedded IPython shell :param transcript_files: str - (optional) allows running transcript tests when allow_cli_args is False """ @@ -1180,6 +1181,10 @@ class Cmd(cmd.Cmd): # If this string is non-empty, then this warning message will print if a broken pipe error occurs while printing self.broken_pipe_warning = '' + # If a startup script is provided, then add it in the queue to load + if startup_script is not None: + self.cmdqueue.append('load {}'.format(startup_script)) + # ----- Methods related to presenting output to the user ----- @property diff --git a/examples/.cmd2rc b/examples/.cmd2rc new file mode 100644 index 00000000..4ffedab9 --- /dev/null +++ b/examples/.cmd2rc @@ -0,0 +1,2 @@ +alias ls !ls -hal +alias pwd !pwd diff --git a/examples/alias_startup.py b/examples/alias_startup.py new file mode 100755 index 00000000..23e51048 --- /dev/null +++ b/examples/alias_startup.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# coding=utf-8 +"""A simple example demonstrating the following: + 1) How to add custom command aliases using the alias command + 2) How to load an initialization script at startup +""" +import argparse + +import cmd2 +import pyparsing + +from cmd2 import with_argument_list, with_argparser, with_argparser_and_unknown_args + + +class AliasAndStartup(cmd2.Cmd): + """ Example cmd2 application where we create commands that just print the arguments they are called with.""" + + def __init__(self): + cmd2.Cmd.__init__(self, startup_script='.cmd2rc') + + +if __name__ == '__main__': + app = AliasAndStartup() + app.cmdloop() |