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:
make
Prepare a demo by installing tools and creating VMs:
bash demo_prepare.sh my.html
The 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 blah
The 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.sh
defines commands executed when preparing the demo environment usingdemo_prepare.sh
user-data.txt
causesdemo_prepare.sh
to create a VM based on the contained commands
- Automated demos
prepare.sh
is executed before the shell for the topic if launchedcleanup.sh
is 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/