Only the MacBook Air (Mid 2011 or newer), MacBook Pro with Retina display were originally supported supported for Power Nap. The reason for this is An SMC update is required to gain all the functionality of Power Nap, and these are the only models Apple has chosen to actively write the firmware updates to support the feature. In other words, it's not that Apple runs some exclusion script to keep other models out; it takes an active update to the firmware to make a model run Power Nap, and they've chosen to do that for two particular lines of computers.
In a subsequent firmware update, Apple included Mid 2010 MacBook Air models in Power Nap.
As far as why they've made that decision, we enter the realm of speculation, but fortunately, we have some good information here.
The idea behind Power Nap is that when the computer appears to be asleep, from time to time, it actually wakes up and performs various tasks. This waking, however, is not noticeable to the user because the computer remains dark and silent. This means no audio or video is activated. It also means, of particular relevance to this question, the fan is also kept off.
This requires a storage device that can run without a fan and a processor that can run without a fan (sorry notoriously hot G5 — I doubt there would ever be a way to support you for this).
According to John Siracusa's epic Mountain Lion review, the Dark Wake mode that Power Nap invokes does not turn on the fans. Thus, only devices Apple knows are designed to be able to access their storage without risk of overheating (as a spinning hard drive might) will take advantage of Power Nap. Siracusa suggests that third party SSDs might have a different heat profile.
While SSDs could be installed in any computer, and Apple could perhaps write firmware updates for all their Macs so that Power Nap checks to see if the computer has a SSD drive and if so, runs Power Nap, they haven't chosen to do so. Instead, they've made Power Nap work only on those models of computer that they know will have a SSD drive.
The limitation might not be drive-based; it could be the processor that can't run silently. This seems slightly less likely to me, given the supported models, but it could explain why the 2010 MacBook Air is excluded. Power Nap monitors temperature, and if the system gets too hot to run without cooling, Power Nap disengages, but if the processor in earlier MBAs was triggering such an alert too often, that may be why Apple removed them from the list of models that support Power Nap.
tl;dr: likely it's hardware; specifically, heat.
I wrote a small JavaScript for Automation program that may be able to accomplish what you want to do. It checks for and deletes the existing file, then proceeds to download the desired file from the GIT repository:
// Get Finder application
finder = Application('Finder')
finder.includeStandardAdditions = true
// Create path to the location of the existing file
path = Path("path/to/destination")
// Check to see if the old file exists
if (finder.files.length > 0) {
oldFile = finder.files[0]
oldFile.delete()
}
// Use curl to download the new file
current = Application.currentApplication()
current.includeStandardAdditions = true
theURL = "http://url/to/git/plugin"
current.doShellScript("curl -L " + theURL + " -o " + path.toString())
Alternatively, you could take some portion of this code (such as the conditional that determines whether there is an existing file) and put it into an Automator "Run JavaScript" action in your existing script.
Best Answer
As far as I know, it's not possible.
The reason is that Power Nap doesn't have an API that 3rd party apps can hook into (so apps could trigger a wake event or be notified when one occurs).
Whether this will remain like that in the future depends upon Apple. It would be interesting to see if there's a simple way to detect when one is in power nap mode, but doesn't seem to be available afaik.
If you leave a script that pulls from git every minute, in theory, since Power Nap is really a power on without graphics and audio state, maybe it would get executed (if it was running before). untested.
More info: https://stackoverflow.com/a/11692367/2684