From c27f20d3e7d0d23926859a41bad62e48184f2869 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 20 Feb 2025 11:12:56 -0600 Subject: [PATCH] Clean up MSI installer script --- scripts/build-msi.sh | 92 +++++++++++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 27 deletions(-) diff --git a/scripts/build-msi.sh b/scripts/build-msi.sh index 53e308e..aa17770 100755 --- a/scripts/build-msi.sh +++ b/scripts/build-msi.sh @@ -63,49 +63,87 @@ do EXE_ID=${PRODUCTNAME}00 EXE_FILE=${filename} #Add special entry to files list - FILES="$FILES\t\t\t\t\t\n" + FILES="$FILES \n" elif [ -d "$file" ] ; then #If this is a directory then we need to add another component - COMPONENTS="${COMPONENTS}\t\t\t\n" - TEMP="\t\t\t\t\n\t\t\t\t\t\n" + COMPONENTS="${COMPONENTS} \n" + TEMP=" \n \n" for file2 in "$file"/*; do filename2=$(basename "$file2") - TEMP="$TEMP\t\t\t\t\t\t\n" + TEMP="$TEMP \n" count=$((count+1)) done - DIRECTORIES="$DIRECTORIES$TEMP\t\t\t\t\t\n\t\t\t\t\n" + DIRECTORIES="$DIRECTORIES$TEMP \n \n" else #Any other file to files list - FILES="$FILES\t\t\t\t\t\n" + FILES="$FILES \n" count=$((count+1)) fi done -echo -e "Building XML:\t" $XMLOUTFILE +############################################################# +# Create the Wix XML file # +# Set IFS to the empty string to allow arbitrary spacing # +# within the XML_FILE variable, then set it back to a # +# space character after we print the XML file # +############################################################# +IFS="" +XML_FILE="" -XML_PACKAGE="\t\n" -XML_MEDIA="\t\n" -XML_CONDITIONS="\tVersionNT64\n" -XML_ICON="\t\n" -XML_PROPERTY="\t\n\t\n" -XML_WIX_UI="\t\n\t\n\t\n\t\n\t\n\t\n" -XML_MAJOR_UPGRADE="\t\n" -XML_METADATA="$XML_PACKAGE $XML_MEDIA $XML_CONDITIONS $XML_ICON $XML_PROPERTY $XML_ACTIONS_EXECUTE $XML_WIX_UI" +XML_FILE+="\r\n" +XML_FILE+="\r\n" +XML_FILE+=" \r\n" +XML_FILE+="${FILES}\r\n" +XML_FILE+=" \r\n" +XML_FILE+="${DIRECTORIES}\r\n" +XML_FILE+=" \r\n" +XML_FILE+=" \r\n" +XML_FILE+=" \r\n" +XML_FILE+=" \r\n" +XML_FILE+=" \r\n" +XML_FILE+=" \r\n" +XML_FILE+=" \r\n" +XML_FILE+="${COMPONENTS}\r\n" +XML_FILE+=" \r\n" +XML_FILE+=" \r\n" +XML_FILE+=" \r\n" +XML_FILE+="" -XML_DIRECTORIES="\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n$FILES\n\t\t\t\t\t\n$DIRECTORIES\t\t\t\t\n\t\t\t\n\t\t\n\t\n" +echo -e $XML_FILE > $XMLOUTFILE +IFS=" " -XML_COMPONENTS="\t\n\t\t\n\t\t\t\n$COMPONENTS\t\t\n\t\n" -XML_DATA="$XML_DIRECTORIES $XML_COMPONENTS" +############################################################# +# Print the XML for debugging # +############################################################# +cat $XMLOUTFILE -#Wipe out any previous XMLOUTFILE and add the header -XML_HEADER="\n\n" -XML_PRODUCT="\t\n$XML_METADATA\n$XML_DATA\n\t\n" - -echo -e $XML_HEADER $XML_PRODUCT > $XMLOUTFILE -echo -e "\t...Done!\n\n" - - -#Once the XML file manifest is created create the package +############################################################# +# Once the XML file manifest is created, create the package # +############################################################# candle -arch x64 ${XMLOUTFILE} light -sval -ext WixUIExtension ${PN_SANS_WS}.wixobj -out ${PN_SANS_WS}_Windows_64.msi