GRUNT
Grunt
Grunt is a scripting system for the Windows Shell based on the Lua programming language. In contrast to other scripting systems such as Windows Power Shell, it is based on graphical user interface concepts rather than a command line and it is compact and self-contained. It was designed originally for automating Portable Applications on USB Flash Drives and for complex “suction” backup routines on removable disk drives. Headline features :
• Fully featured scripting language based on Lua. • System Tray icon and right-click menu customisable from Lua. • Ability to start and manage application and command processes. • File management facilities based on the Shell Object hierarchy. • Ability to arrange application windows on multiple monitors. • Support for mount and dismount of removable drives. • Ability to spawn a secondary script with elevated privileges under Vista. • Sophisticated time and date handling with scheduling.
Normally, executing Grunt installs a System Tray icon which may be double-clicked to show a console window. The icon has a script-defined right click menu. It is possible to suppress the installation of the tray icon using a command line switch. Whether or not the tray icon is present, the console window is shown if an error occurs in the script or if the script executes the print function.
Lua
Grunt uses the Lua 5.1 scripting language as defined in Lua Reference Manual 5.1 (http://www.lua.org/manual/ or in print from Amazon.com) and described in more detail in Programming in Lua, 2nd Edition (available in print from Amazon.com). The language has been greatly extended from this base. The following changes have been made to the standard language described in the reference documents :
1. The print command has been replaced by a reference to grunt.print described below, which offers enhanced capabilities and which outputs to the Grunt Console. Grunt.print and print are synonymous.
2. The table library is not available. The functionality of this library has been replaced by object oriented mechanisms accessed from the new library. The combination of the Table class and the List class provide all the functionality of the table library in standard Lua.