| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Hi, I cant support this package since not working with NW anymore. So I would love to give the project out to somebody who cares. Contact me on twitter @edjafarov.
This is node-webkit-updater.
npm install node-webkit-updater
It gives you low-level API to:
You should build this logic by yourself though. As a reference you can use example.
Covered by tests and works for linux, windows and mac.
####new updater(manifest, options) Creates new instance of updater. Manifest could be a package.json of project.
Note that compressed apps are assumed to be downloaded in the format produced by node-webkit-builder (or grunt-node-webkit-builder).
Params
####updater.checkNewVersion(cb) Will check the latest available version of the application by requesting the manifest specified in manifestUrl.
The callback will always be called; the second parameter indicates whether or not there's a newer version. This function assumes you use Semantic Versioning and enforces it; if your local version is 0.2.0 and the remote one is 0.1.23456 then the callback will be called with false as the second paramter. If on the off chance you don't use semantic versioning, you could manually download the remote manifest and call download if you're happy that the remote version is newer.
Params
####updater.download(cb, newManifest) Downloads the new app to a template folder
Params
Returns: Request - Request - stream, the stream contains manifest property with new manifest and 'content-length' property with the size of package.
####updater.getAppPath()
Returns executed application path
Returns: string
####updater.getAppExec()
Returns current application executable
Returns: string
####updater.unpack(filename, cb, manifest)
Will unpack the filename in temporary folder.
For Windows, unzip is used (which is not signed).
Params
####updater.runInstaller(appPath, args, options) Runs installer
Params
Returns: function
####updater.install(copyPath, cb)
Installs the app (copies current application to copyPath)
Params
####updater.run(execPath, args, options) Runs the app from original app executable path.
Params
Note: if this doesn't work, try gui.Shell.openItem(execPath) (see node-webkit Shell).
An example manifest:
{
"name": "updapp",
"version": "0.0.2",
"author": "Eldar Djafarov <djkojb@gmail.com>",
"manifestUrl": "http://localhost:3000/package.json",
"packages": {
"mac": {
"url": "http://localhost:3000/releases/updapp/mac/updapp.zip"
},
"win": {
"url": "http://localhost:3000/releases/updapp/win/updapp.zip"
},
"linux32": {
"url": "http://localhost:3000/releases/updapp/linux32/updapp.tar.gz"
}
}
}The manifest could be a package.json of project, but doesn't have to be.
The name of your app. From time, it is assumed your Mac app is called <manifest.name>.app, your Windows executable is <manifest.name>.exe, etc.
semver version of your app.
The URL where your latest manifest is hosted; where node-webkit-updater looks to check if there is a newer version of your app available.
An "object" containing an object for each OS your app (at least this version of your app) supports; mac, win, linux32, linux64.
Each package has to contain a url property pointing to where the app (for the version & OS in question) can be downloaded.
It's assumed your app is stored at the root of your package, use this to override that and specify a path (relative to the root of your package).
This can also be used to override manifest.name; e.g. if your manifest.name is helloWorld (therefore helloWorld.app on Mac) but your Windows executable is named nw.exe. Then you'd set execPath to nw.exe
If you get an error on Mac about too many files being open, run ulimit -n 10240
On Windows, there is no "unzip" command built in by default. As a result, this project uses a third party "unzip.exe" in order to extract the downloaded update. On the NWJS site, in the "How to package and distribute your apps" file, one of the recommended methods of distribution is using EnigmaVirtualBox to package the app, nw.exe, and required DLLs into a single EXE file. This method works great for distribution, but unfortunately breaks node-webkit-updater, because it wraps the required unzip.exe file inside of the created EnigmaVirtualBox EXE. As a result, it is not possible to use EnigmaVirtualBox to distribute your app if you plan on using node-webkit-updater. Try using InnoSetup instead.
See CONTRIBUTING.md
| Back | FazBrowse Home | New Git URL |