NEW --- - Added -E to redirect all stderr output to stdout instead, - Added -T timeout option (default is 15 sec). - Added -a to allow program to continue after file transfer error. - Added -l logging option. Defaults to /dev/null. This fixes the error that was previously being reported: "No handlers could be found for logger "paramiko.transport" CHANGES ------- - Changed hostname separator from ':' to '-' when using the -G command. - The HOSTNAME and HOSTSHORT built-in names no longer use < and > as delimiters, but use a double underbar instead as in: __HOSTNAME__. This change was made to avoid having to quote these metacharacters since they are used by the shell for redirection. - Error messages now more consistent and clear. BUG FIXES --------- - Fixed bug that prevented the proper dereferencing of HOSTNAME in file transfer specifications. - Fixed bug that prevented '.define' variables from being substituted in file transfer specifications. - Fixed bug that only recognized sudo invocations if they were the first statement on a command line. All instances of the string "sudo " will now force sudo password prompting and processing. That string is ignored if it appears inside single- or double quotes. - Fixed bug that intermittently occurred during password-based auth sessions because ssh-agent and key searching were still being used. - Fixed error reporting blowout when key-exchange auth fails. TODO ---- - Restructure __HOSTNAME__, __HOSTSHORT__ processing to must make them part of the symbol table. - Add the following builtins: __DATE__ __DATETIME__ __HOSTNUM__ __TIME__ - Add: .define foo = ! string - Recursive .define replacements with loop detection and explain how to use to override bultins. - Do testmode substitions. - Make note that all cmdfiles are read in and THEN evaluated at *runtime*: echo __HOSTNUM__ echo __HOSTNAME__ echo __HOSTSHORT__ .define __HOSTSHORT__ = ozzie Runtime __HOSTSHORT__ == ozzie sudoers Mode ------------ - Capture bad password - Capture failed command output - Write the server noise, as it appears to stderr for debug purposes - Note in docs: In this mode it will HANG waiting for interactive input. - Note in docs: There is no separation between stdout and sterr in this mode