liftinstall/README.md

57 lines
2.1 KiB
Markdown
Raw Normal View History

2018-08-09 08:57:07 +02:00
<img src="banner.png" width="400px" />
2018-09-19 04:33:35 +02:00
[Usage Documentation](https://liftinstall.jselby.net/)
- [Quick Start](https://liftinstall.jselby.net/quick-start)
2018-08-09 08:57:07 +02:00
- [License](LICENSE)
2018-01-31 04:42:28 +01:00
2018-01-31 07:14:31 +01:00
[![Build Status](https://travis-ci.org/j-selby/liftinstall.svg?branch=master)](https://travis-ci.org/j-selby/liftinstall)
2018-01-31 04:43:49 +01:00
An installer for your application. Designed to be customisable to the core, hookable from external
2018-01-31 04:42:28 +01:00
applications, and have a decent UI.
2018-08-09 08:57:07 +02:00
This is designed to be a more modern interpretation of Qt's Installer Framework, which is hard to develop on,
2018-08-09 12:16:57 +02:00
poorly documented, has a hardcoded package listing format, and isn't supported all that well, with rare updates
and a large list of bugs.
2018-01-31 04:42:28 +01:00
Building
--------
For more detailed instructions, look at the usage documentation above.
There are are few system dependencies depending on your platform:
- For all platforms, `cargo` should be available on your PATH. [Rustup](https://rustup.rs/) is the
recommended way to achieve this. Stable or Nightly Rust works fine.
Update config files for v7 (#12) * platform: fix build on Linux and update web-view * deps: replace xz-decom with xz2 and update deps * platform: fix regression... ... that prevents the build on Windows * linux: implement platform-dependent functions * travis: add macos and windows CI * travis: use official Rust Docker image * Update Cargo.lock for new version * Break apart REST into separate services This cleans up locking, ensures consistent futures for all endpoints and enhances code re-use. * Clean up codebase, fixing minor errors * Update packages, use async client for downloading config While this has a hell of a lot more boilerplate, this is quite a bit cleaner. * Add explicit 'dyn's as per Rust nightly requirements * Migrate self updating functions to own module * Migrate assets to server module * Use patched web-view to fix dialogs, remove nfd * Implement basic dark mode * Revert window.close usage * ui: split files and use Webpack * frontend: ui: include prebuilt assets... ... and update rust side stuff * build: integrate webpack building into build.rs * Polish Vue UI split * Add instructions for node + yarn * native: fix uninstall self-destruction behavior...... by not showing the command prompt window and fork-spawning the cmd * native: deal with Unicode issues in native APIs * native: further improve Unicode support on Windows * travis: add cache and fix issues * ui: use Buefy components to... ... beautify the UI * ui: makes error message selectable * Make launcher mode behaviour more robust * Fix error display on launcher pages * Correctly handle exit on error * Bump installer version
2019-07-05 03:23:16 +02:00
- Have node.js and Yarn available on your PATH (for building UI components, not needed at runtime).
- For Windows (MSVC), you need Visual Studio installed.
- For Windows (Mingw), you need `gcc`/`g++` available on the PATH.
- For Mac, you need Xcode installed, and Clang/etc available on the PATH.
- For Linux, you need `gcc`/`g++`, `webkit2gtk`, and `libssl`. For Ubuntu 18.04 this would look like:
```bash
apt install -y build-essential libwebkit2gtk-4.0-dev libssl-dev
```
In order to build yourself an installer, as a bare minimum, you need to:
Update config files for v7 (#12) * platform: fix build on Linux and update web-view * deps: replace xz-decom with xz2 and update deps * platform: fix regression... ... that prevents the build on Windows * linux: implement platform-dependent functions * travis: add macos and windows CI * travis: use official Rust Docker image * Update Cargo.lock for new version * Break apart REST into separate services This cleans up locking, ensures consistent futures for all endpoints and enhances code re-use. * Clean up codebase, fixing minor errors * Update packages, use async client for downloading config While this has a hell of a lot more boilerplate, this is quite a bit cleaner. * Add explicit 'dyn's as per Rust nightly requirements * Migrate self updating functions to own module * Migrate assets to server module * Use patched web-view to fix dialogs, remove nfd * Implement basic dark mode * Revert window.close usage * ui: split files and use Webpack * frontend: ui: include prebuilt assets... ... and update rust side stuff * build: integrate webpack building into build.rs * Polish Vue UI split * Add instructions for node + yarn * native: fix uninstall self-destruction behavior...... by not showing the command prompt window and fork-spawning the cmd * native: deal with Unicode issues in native APIs * native: further improve Unicode support on Windows * travis: add cache and fix issues * ui: use Buefy components to... ... beautify the UI * ui: makes error message selectable * Make launcher mode behaviour more robust * Fix error display on launcher pages * Correctly handle exit on error * Bump installer version
2019-07-05 03:23:16 +02:00
- Add your favicon to `ui/public/favicon.ico`
- Add your logo to `ui/src/assets/logo.png`
- Modify the bootstrap configuration file as needed (`config.PLATFORM.toml`).
- Have the main configuration file somewhere useful, reachable over HTTP.
- Run:
2018-01-31 04:42:28 +01:00
```bash
cargo build --release
2018-01-31 04:42:28 +01:00
```
2018-01-31 07:14:31 +01:00
Contributing
------------
PRs are very welcome. Code should be run through [Rustfmt](https://github.com/rust-lang-nursery/rustfmt)
before submission.
2018-01-31 04:42:28 +01:00
License
-------
2018-01-31 04:43:49 +01:00
LiftInstall is licensed under the Apache 2.0 License, which can be found in [LICENSE](LICENSE).