https://github.com/logandk/unfurl
Simple filesystem-based desktop application deployment for Windows
https://github.com/logandk/unfurl
Last synced: 9 days ago
JSON representation
Simple filesystem-based desktop application deployment for Windows
- Host: GitHub
- URL: https://github.com/logandk/unfurl
- Owner: logandk
- License: other
- Created: 2013-09-18T07:48:33.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-11-15T09:37:13.000Z (over 12 years ago)
- Last Synced: 2025-02-28T14:09:20.374Z (over 1 year ago)
- Language: C
- Size: 242 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# unfurl #
Simple filesystem-based desktop application deployment for Windows
# Introduction #
**unfurl** is a simple desktop application deployment tool for Microsoft
Windows.
The main objective is to create a simple and robust alternative to systems such
as [ClickOnce][1]. Inspired by [nlaunch][2], the objective is to create an
application/environment/language-agnostic deployment tool that does not require
sophisticated infrastructure.
# How it works #
1. **unfurl** is started with the manifest file as the first argument. Any
additional arguments will be passed along to the target application.
Examples:
* `unfurl.exe myapp`
* `unfurl.exe myapp.xml`
* `unfurl.exe apps\myapp`
* `unfurl.exe P:\deploy\myapp.xml`
2. It finds the manifest file based on the first argument:
* If the argument is an absolute or relative path, it is used
* Search the working directory for the manifest file, adding `.xml` if needed
* Search the application directory for the manifest file, adding `.xml` if
needed
3. The manifest file is parsed.
4. It checks the local `APPDATA` folder for existence of the latest version of
the target application binary.
5. If a local binary was not found, the latest application package is found in
`repository`. The package naming convention is
`[identifier]-[current-version].zip`. E.g. `myapp-1.0.zip`. The package is
extracted to the local `APPDATA` folder.
6. The application specified by `binary` is launched, passing along any
additional command line arguments.
If an error occurs during unpackaging, the local copy is removed from
`APPDATA`.
# Manifest file #
```xml
myapp.exe
P:\deploy
myapp
1.0
```
# TODO #
* Tests
* Package dependencies (e.g. a Qt package containing all DLL's)
# License #
This code is copyright 2013 Logan Raarup, and is released under the revised BSD License.
For more information, see [`LICENSE`](http://github.com/logandk/unfurl/blob/master/LICENSE).
[1]: http://en.wikipedia.org/wiki/ClickOnce
[2]: https://code.google.com/p/nlaunch