An oh-so-simple updater for all manner of things (currently for Windows).
Run the generated exe and everything will be up-to-date pronto!
Parallelized hashing and downloading allows for downloads of changed files only, as fast as your network can handle.
Does not currently support patch files because of the difficulty associated with maintaining them.
The codebase is small, the created executable weighs no more than a photo, and the requirements border on 'None'.
You only need Python (pip) and virtualenv installed, and the packaging process will set up and clean after itself.
Uses tqdm to show progress bars for all currently downloading files in real time.
Plenty of comments to explain what is going on included in the code.
Fill out the variables in updater.py and run the packaging script, you're done!
For more automation, include this project in your project files and run the server packaging script.
If you need to update the updater, run the packaging script before the server script.
(*the hash changes every time the exe is created, even from the same code, so only make the exe when you want to replace it).
For even more automation, fill out the update function in server_update.py.
As the name suggests, the file tracks files and their MD5 hashes, keeping track of changes.
This means, that you can simply place your program files, the updater, and checksums on any web server for this updater to work.
This file is automatically created by the server packager, but you can easily supply it by yourself.
The format is simply {filename,md5hash} for each tracked file, including the updater itself, example.