Tuesday, February 26, 2008

ASCII update problem with shell scripts in IA

InstallAnywhere supports ASCII update of files as its predecessor ISMP. But the interesting feature with InstallAnywhere is it substitutes everything between "$" sign. The reason behind this being IA resolves its variable which are in between two $ sign like $USER_INSTALL_DIR$ or $PRODUCT_NAME$
 
Here is the most interesting part which is going to attract your attention
 
A Shell script resolves its variable the same way IA does i.e the string starting with $ sign is considered to be a shell variable. Now here's the tweak if your shell script has multiple $ sign in a single line and if you are trying to update this file using IA ASCII update you will end up corrupting your file.
 
A very weired solution to this problem is to replace all the $ sign with "DOLLAR" 
Although tough to belief the Advanced designer has the feature where you can mention do not substitute IA variables but it actually does not respect your input.
 
So if you are trying to update a file that contains multiple $ sign in a file file use DOLLAR, once the IDE update the file as per your instruction it will automatically replace the DOLLAR with $
 
:) Keep reading many more to come....