Skip to content
Application for automatically applying updates to certain software on Windows
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Application for automatically applying updates to certain software on Windows.


  • It's written in Java, so unfortunately you'll have to already have Java installed to run this.
  • Requires the HTTP library Resty, version 0.3.2 (name it resty-0.3.2.jar and place it in the same directory as this Readme)
  • Some versions of the JVM don't play nice with it (seems to be ok on 7U45 and up, definitely works on 7U55)
  • Only works on Windows (tested on 7) and requires being run as Administrator
  • It requires an HTTP server on your LAN to download the updates from
  • It uses the statically configured directory c:\magicupdates to save its state and anything it downloads
  • I churned this thing out over the course of about 2 days at work so it might have some bugs
  • Don't blame me if it breaks something
  • Not very configurable, I only wrote code for the rules I needed to use


  • Compile it (run make)
  • Edit the config file as required and put it on your server, along with all the required update files
  • Run java -jar magic.jar http://your-update-host/path/to/updates.cfg as Administrator
  • It generates some stuff (batch file, state file, data files, and logs) in c:\magicupdates and schedules a task to run on reboot to install the updates
  • When you reboot, the updates will install

Configuration rules

  • Comments must start at the beginning of a line and begin with //
  • Empty lines are ignored
  • Each configuration item is named with an 'entry' line
  • State the version of the item with the 'version' line
  • State the files required for the item with 'file' lines
  • State the commands required for the installation with 'command' lines (See Replacements section below for details)
  • Specify any specific conditions for installation with 'cond' lines (See Conditions section below)
  • End the item block with an 'end' line
  • Refer to the included example config file for details


Conditions take the form type;param{;moreparams}

Three types of conditions are supported:

  • platform;xx
    • platform;32 to only run the item on a 32 bit system
    • platform;64 to only run the item on a 64 bit system
  • cmdnotcontain;string;command
    • Runs the specified command, and installs the item if it doesn't contain the specified string
    • For an example, look at the Java rules in the example config
  • cmdcontain;string;command
    • Same as the cmdnotcontain rule, but the opposite behavior


Command strings can have variables in them. Three types of replacements are supported:

  • %%n
    • Replaced by the full pathname of file number n of this entry
  • !!n
    • Like %%n, but located in the log directory and with '.log' appended (for a log file related to a specific downloaded file)
  • @@
    • Replaced by the working directory c:\magicupdates\data

Again, refer to the example config file to see how all of these work.


You can’t perform that action at this time.