Metadata-Version: 2.1
Name: asciinema-automation
Version: 0.2.1
Summary: CLI utility to automate asciinema
Author-email: Pierre Marchand <test@test.com>
License: MIT License
Project-URL: Homepage, https://github.com/PierreMarchand20/asciinema_automation
Project-URL: Bug Tracker, https://github.com/PierreMarchand20/asciinema_automation/issues
Keywords: asciinema
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Unix
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: pexpect>=4.8.0
Requires-Dist: asciinema>=2.2.0
Provides-Extra: dev
Requires-Dist: ruff; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: types-pexpect; extra == "dev"

asciinema-automation
####################

.. image:: https://badge.fury.io/py/asciinema-automation.svg
    :target: https://badge.fury.io/py/asciinema-automation

.. image:: https://github.com/PierreMarchand20/asciinema_automation/actions/workflows/CI.yml/badge.svg
    :target: https://github.com/PierreMarchand20/asciinema_automation/actions/workflows/CI.yml

asciinema-automation is a Python package which provides a small CLI utility to automate `asciinema <https://asciinema.org>`_ recordings. The only dependencies are asciinema and `Pexpect <https://pexpect.readthedocs.io/>`_.

Recording is made easier by:

- making the live recording for you, to get the perfect take in one go (no more missed keys!),
- while looking not too robotic by adding Gaussian delay between keystrokes.

One specificity of this package is that 

- it makes automated recording as **reproducible and robust** as possible. In particular, there is no need to add a manually set waiting time between commands to wait for previous outputs. 

To that end, you can write the commands you wish to showcase in a text file, and using comment lines starting by :code:`#$` (see `examples` folder and `example`_), you can specify the expected output of each command, and/or change the configuration of the automated recording on-the-fly.

Example
-------

.. image:: https://raw.githubusercontent.com/PierreMarchand20/asciinema_automation/main/demo.gif
    :alt: Demo

This example is generated reading with ``asciinema-automation`` a script that calls ``asciinema-automation`` which reads the ``hello_world.sh`` example in this repository 🙃

Numerous examples can also be found `here <https://github.com/PierreMarchand20/asciinema_playground>`_.

Installation
------------

You can use `pip <https://pip.pypa.io/en/stable/>`_ to install:

.. code:: bash
    
    python3 -m pip install asciinema-automation

Or you can install it directly using this GitHub repository. In this case, you need to call ``git clone`` to recover the source code of this repository

.. code:: bash
    
    git clone https://github.com/PierreMarchand20/asciinema_automation.git 


and then call pip in your local folder of this repository to install this package and its dependencies

.. code:: bash
    
    pip3 install . 


History
-------

This repository is inspired by `asciiscript <https://github.com/christopher-dG/asciiscript>`_, which is not maintained any more. I first made a fork, but being not very familiar with go, I preferred to rewrite everything in python.
