Python & Wix based Installer Development

Job ID: 38197970

Budget: $30 – $250 AUD

I am looking for skilled developer proficient in Python and the Wix toolset to build an installer. The key features are:
Operating system to be supported is Windows.
The installation process should incorporate minimal user interaction; it should be designed for automated installation with only a few user inputs.

Its a bit of a dynamic process and so needs to accept a customer id for each time I run the installer build process

The reason that a customer ID needs to be provided is because the files required or each customers installer is in a dynamic location.
The build process takes place on windows so keep that in mind for directories and build process. Wivx v5 will be in use.

In the folder ./build/created/{comapny_name} there will be the following
file_1.msi
check_license.exe
data.json
file_2.msi
file_3.msi

The installer needs to do the following.
be provided the customer ID (its just a string)
The company_name and subscription_key should be retrieved from the data.json
As an example the JSON file looks similar to below, but actually contains more values. The data.josn are customer specific so need to read each time the installer is built.
{
"company_name": "IBM",
"subscription_key": "888dgajd7a7ba51ffd41d"
}
Next, it should run check_license.exe --customer "company_name value" --key "subscription_key value"
if check_license.exe gives exit code 0 then it should continue, if it gives exit code 1 it should say "You have no more license available. If you believe this is in error please contact {email address to be provided}" It should then end the installer
if it gives exit code 2 it should say "An unknown error has occured", please contact {email address to be provided} and end there.

Next it should install each msi one by one with /qn and /i arguments
after this it should cleanup all files, data.json, file_1.msi, file_2.msi and file_3.msi
It should show a progress bar as its working through this entire installer.
Upon completion the installer should say if it completed successfully

The installer should be generated in the ./build/created/{comapny_name} folder

It needs to be portable and all files must be contained in one file, the company_name changes each time which is required as part of the build and why it is being automated. Each of the msi's in the package are customer specific and have custom properties.
The ability to specify icon/logo would also be good.

Ultimately the end goal should be that I run the installed script, it asks for a company name or I provide it as an argument and then it creates the installer msi and places it in ./build/created/{comapny_name}.


Key Skills and Experience Needed:

- Advanced Python programming
- Experience building installers using Wix Toolset
- Familiarity with Windows operating system
- Understanding of desktop applications
- Ideally, candidates would have prior experience designing interactive but automated user interfaces.

Please bid only if you meet these requirements and can deliver a high-quality, efficient installer.
Related categories: Python Windows Desktop Software Architecture