The html files in the root directory define a presentation. It consists of one or more topics stored in the subdirectories.
Generate all files to view existing slide decks:
makePrepare a demo by installing tools and creating VMs:
bash demo_prepare.sh my.htmlThe demo environment should be prepared on the machine which will later be used to execute the automated demos.
Execute an automated demo:
bash demo_run.sh <myslides.html>You will receive a new shell for every included topic in the slide deck. The code contained in prepare.sh and cleanup.sh will be execute before entering and after leaving the shell, respectively. The shell will have a few functions to manage demos:
# List demos for the current topics
demos
# Execute a demo
demo blahThe demo for a topic ends when closing the shell using exit or ^D.
After the automated demos have finished, run the following command to cleanup including VM removal:
bash demo_cleanup.sh <myslides.html>Note that slide decks have only been tested if they are referenced in a release of this repository.
Each of those topics is made up of the following files:
- Slides
- (either)
*.template.md - (or)
*.md
- (either)
- Demos:
*.demo - Demo environment
prep.shdefines commands executed when preparing the demo environment usingdemo_prepare.shuser-data.txtcausesdemo_prepare.shto create a VM based on the contained commands
- Automated demos
prepare.shis executed before the shell for the topic if launchedcleanup.shis executed after the shell for the topic has ended
There are many examples in the subdirectories.
Demos are defined in *.demo files. The automated demos expect these files to have the following format:
# Title of the demo displayed by the demo function
# Comment of demo step 1 displayed when executing the demo
echo first command
echo demo step includes all commands ...
echo ...up to the next comment
# Comment of demo step 2 displayed when executing the demo
echo more commands
echo even more commands
The steps of a demo can be included into the slides. If the slides of a topic are defined in a *.template.md file, make will substitute a demo step when using the following syntax where demo_name is the name of the *.demo file:
<!-- include: demo_name-0.command -->The *.command files are generated by make.
Some demos should be run on fresh VMs. The current implementation uses Hetzner Cloud and expects a configured workspace for hcloud.
The slides can be copied to a location of your choice. It will include all files required for viewing the slides.
bash copy_clides.sh <myslides.html> /target/location/