logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

cleo - Play back shell commands for live demonstrations

Author

       Jeffrey Ryan Thalhammer <thaljef@cpan.org>

Commands

       "cleo" reads commands from a file.  Each line is treated as one command.  Blank lines and those starting
       with "#" will be ignored.  The commands themselves can be anything that you would type into an
       interactive shell.  You can also add a few special tokens that "cleo" recognizes:

       "!!!"
           Commands  starting  with  "!!!"  (three  exclamation  points)  are not displayed and will be executed
           immediately. This is useful for running setup commands at the beginning of your demonstration.

       "%%%"
           Within a command, "%%%" (three percent signs) will cause "cleo" to pause  and  wait  for  a  keypress
           before  displaying  the  rest  of the command.  This is useful if you want to stop in the middle of a
           command to give some explanation.

       Otherwise, "cleo" displays and executes the commands verbatim.  Note that some interactive commands  like
       "vim"  are  picky  about STDOUT and STDIN.  To make them work properly with "cleo", you may need to force
       them to attach to the terminal like this:

           (exec < /dev/tty vim)

Description

       "cleo" is a utility for playing back pre-recorded shell commands in a live demonstration.  "cleo"
       displays the commands as if you had actually typed them and then executes them interactively.

       There is probably an easy way to do this with "expect" or a similar tool.  But I couldn't figure it out,
       so I built this.  Your mileage may vary.

Example

       I   use   this   for   giving    demonstrations    of    pinto,    such    as    the    one    seen    at
       <https://www.youtube.com/watch?v=H-JkFXm8Xgk> (the live demonstration part starts around 10:47).

       The   command   file  that  I  use  for  that  presentation  is  included  inside  this  distribution  at
       examples/pinto.demo.  This file is for illustration only, so don't expect it to actually work for you.

Limitations

       "cleo" only works on Unix-like platforms.  It may work on Windows if you use Cygwin.  Personally, I  have
       only used "cleo" on Mac OS X.

Name

       cleo - Play back shell commands for live demonstrations

Playback

       "cleo" always pauses and waits for a keypress before displaying a command and before executing it.
       Pressing any key besides those listed below will advance the playback:

         Key                       Action
         ------------------------------------------------------------------
         s                         skip the current command
         r                         redo the current command
         p                         redo the previous command
         q                         quit playback

Synopsis

           cleo COMMAND_FILE

Todo

       Jump to arbitrary command number
       Support backspacing in recorded command
       Support multi-line recorded commands
       Write unit tests

See Also