On 9. Oct 2004, at 22:34, Isaac Rivera wrote:
I came up with a pretty decent syntax file mysefl.
Okay, Rob also did some ActionScript support: http://one.textdrive.com/pipermail/textmate/2004-October/000422.html
Trying to do a class template and have gotten most of it.
Can you tell me how to have the perl script input the date in the template file?
Its not one of the shell variables, I know, but maybe its accessible to the script.
These questions really belong on the ML, so I'm cc'ing the list :)
You can add your own variables to the environment by changing the command in the Info.plist, for example here I setup TM_DATE to be YYYY-MM-DD:
{ name = "Date Test"; extension = "txt"; command = "[ -f $TM_NEW_FILE ] || TM_DATE=`date +%Y-%m-%d` perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' <index.html >"$TM_NEW_FILE""; }
So it's basically just 'var=value' before the perl command (you can set multiple variables). And the back-ticks (`) means that it's a command to execute, so TM_DATE is set to the result of running date +%Y-%m-%d. All this is of course related to bash and not really TextMate.
Another neat one is the full user name which we can get with niutil, here's an example:
command = "[ -f $TM_NEW_FILE ] || TM_DATE=`date +%Y-%m-%d` TM_USERNAME=`niutil -readprop / /users/\$USER realname` perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' <index.html >"$TM_NEW_FILE"";
One important note: the commands above are prefixed with '[ -f $TM_NEW_FILE ] || '. This is to check if the file already exists, and if so, it won't do the "or" branch (i.e. overwrite it).
I really should have added this to the default templates! I'll be adding it to all templates shipping with 1.0.1 -- if you create your own templates, please add it to avoid templates from overwriting files!
The reason TextMate doesn't perform this check is, that the template could generate multiple files, or not generate TM_NEW_FILE at al.
Also, remember that you're not limited to using perl as command. You can write your templates in e.g. PHP and use php as the command to generate them.
Kind regards Allan