This is Zombie! An app that never dies, and keeps coming for your release files. It allows you to synch files from GitHub Releases directly to specified locations on the user drive. It runs continously in the background making sure that you are always up to date with your latest GitHub Release.
What is Zombie?
Zombie is a small app that keeps your plug-ins up to date. It communicates with a GitHub repository, scanning it's Releases for any changes. If there was an update to the Release on GitHub, Zombie will download it and distribute on your computer per defined settings. It has two components:
- Zombie Service.
- Zombie GUI.
1. Zombie Service
This part of Zombie runs in the background as a Windows Service. The reason it's a Windows Service is simple: we needed it to be a System level application with admin privelages. Since the main job that this service does, is to move files around on a computer we needed it to have admin rights in case that we need to copy some files into ProgramData, ProgramFiles etc.
ZombieService also hosts a WCF (Windows Commmunications Foundation) Service inside of it. What is that? It's a server. What for? Well, Windows Service cannot have a GUI component to it, so we needed to de-couple the GUI from the Service. Now that they are seperate and actually two (2) seperate processes, we needed a way to communicate between them, in case that you wanted to ask the Service to do something (perform an update etc.).
2. Zombie GUI
This part of Zombie is a WPF App that allows us to create, and set settings for the Zombie Service. Like I said, Windows Service doesn't have a GUI so this is a stand-alone app, that uses a WCF framework to talk to the service. It uses port 8000 to do the talking.
How does Zombie work:
- Publish GitHub Release: How to create a Release
- Get Access Token for that Repository: How to create a Personal Token
- Setup Zombie GitHub Connection:
- Setup Zombie File Mappings:
- Setup Zombie Refresh Interval: