diff --git a/scripts/build-msi.sh b/scripts/build-msi.sh
index 837e2ce2..d7e1005b 100755
--- a/scripts/build-msi.sh
+++ b/scripts/build-msi.sh
@@ -52,6 +52,10 @@ EXTENSION="orp"
SAVE_FILE="${PRODUCTNAME}.${EXTENSION}"
count=1
+#############################################################
+# Build file list for files in the working path #
+#############################################################
+
for file in "$WORKING_PATH"/*;
do
filename=$(basename "$file")
@@ -60,55 +64,104 @@ 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_ACTION_RUNAS_ADMIN="\t\n"
-XML_ACTION_FIRSTRUN="\t\n"
-XML_ICON="\t\n"
-XML_PROPERTY="\t\n\t\n"
-XML_ACTIONS_EXECUTE="\t\n\t\tNOT Installed\n\t\tNOT Installed\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_MAJOR_UPGRADE $XML_ACTION_RUNAS_ADMIN $XML_ACTION_FIRSTRUN $XML_ICON $XML_PROPERTY $XML_ACTIONS_EXECUTE $XML_WIX_UI"
+XML_FILE+="\r\n"
+XML_FILE+="\r\n"
+XML_FILE+=" \r\n"
+XML_FILE+=" \r\n"
+XML_FILE+=" \r\n"
+XML_FILE+=" VersionNT64\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+=" NOT Installed\r\n"
+XML_FILE+=" NOT Installed\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+="\r\n"
+XML_FILE+=" \r\n"
+XML_FILE+=" \r\n"
+XML_FILE+=" \r\n"
+XML_FILE+=" \r\n"
+XML_FILE+="${FILES}\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+="${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+=" \r\n"
+XML_FILE+=""
-XML_STARTMENU="\t\t\n"
-XML_ASSOCIATE_FILE="\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n"
-XML_DIRECTORIES="\t\n\t\t\n\t\t\t\n\t\t\t\t\n$FILES\n$XML_SHORTCUT\n$XML_ASSOCIATE_FILE\t\t\t\t\n$DIRECTORIES\t\t\t\n\t\t\n$XML_STARTMENU\t\n"
-
-XML_COMPONENTS="\t\n\t\t\n\t\t\t\n$COMPONENTS\t\t\t\n\t\t\n\t\n"
-XML_DATA="$XML_DIRECTORIES $XML_COMPONENTS"
-
-#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"
+echo -e $XML_FILE > $XMLOUTFILE
+IFS=" "
+#############################################################
+# Print the XML for debugging #
+#############################################################
cat $XMLOUTFILE
-#Once the XML file manifest is created create the package
+#############################################################
+# Once the XML file manifest is created, create the package #
+#############################################################
candle -arch x64 ${PRODUCTNAME,,}.wxs
light -sval -ext WixUIExtension ${PRODUCTNAME,,}.wixobj -out ${PRODUCTNAME}_Windows_64.msi