Table of Contents
Lynus Vaz: Enhanced scripting language
Project Plan
Summary
gPXE currently features a limited capability command language. A more powerful scripting language would be useful to users: they can specify boot policies or other customizations as a script, without having to understand gPXE completely, or having to edit the code.
Features:
Evaluating arithmetic/boolean expressions
If-then-else branches
Quoting
Outline
- These changes need an arithmetic evaluator, to accept expressions.
- Define if, then, else commands. I am thinking of something like:
if [ expr ]
statements
else
statements
fi
I think this would be the simplest to deal with.
- Define a goto command, or alternatively for, and while commands
- A simple syntax to handle expression expansion: something like the current ${} for variables.
- Also, handling variables in these expressions, especially string variables
- I also think we need to have some operators like: check if interface exists (maybe (–i net1)?)
- Quoting
- Command exit code
- Documentation
- Testing
Milestones and Timeline
Current work: I currently have code to evaluate arithmetic expressions, involving integers only (variable substitution is done before it is called). The usual C operators are supported (no variables, so no assignment), with their usual precedence and associativity.
June 8: Finalize syntax issues: dealing with string variables, use ${} for arithmetic expressions as well or define another delimiter, syntax for if, and loops.
June 14: Implementation of arithmetic parser as decided.
June 21: Dealing with quoting
June 28: Conditional branches
July 12: Loops and goto
July 23: Return code
July 26: Documentation
Aug 2: Autoboot script and other testing
Aug 10: Leeway