mirror of
https://github.com/djibux/BoilR.git
synced 2026-09-01 05:53:41 +02:00
Make UI default, and remove CLI version (#83)
This commit is contained in:
@@ -20,7 +20,7 @@ jobs:
|
||||
- name: dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libx11-dev libxext-dev libxft-dev libxinerama-dev libxcursor-dev libxrender-dev libxfixes-dev libpango1.0-dev libpng-dev libgl1-mesa-dev libglu1-mesa-dev
|
||||
sudo apt-get install -y libclang-dev libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
|
||||
- name: Test
|
||||
run: |
|
||||
cargo test
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Create Release Builds
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*" # matches v1.0.1, v1.2, v2, etc
|
||||
- "v.*.*.*" # matches v.1.0.1 etc
|
||||
|
||||
jobs:
|
||||
once:
|
||||
@@ -35,73 +35,38 @@ jobs:
|
||||
asset_name: linux_BoilR
|
||||
args: --best --lzma
|
||||
strip: true
|
||||
ui: false
|
||||
- os: ubuntu-latest
|
||||
file: target/release/boilr
|
||||
asset_name: linux_ui_BoilR
|
||||
args: --best --lzma
|
||||
strip: true
|
||||
ui: true
|
||||
- os: windows-latest
|
||||
file: target/release/boilr.exe
|
||||
asset_name: windows_BoilR.exe
|
||||
args: -9
|
||||
strip: false
|
||||
ui: false
|
||||
- os: windows-latest
|
||||
file: target/release/boilr.exe
|
||||
asset_name: windows_ui_BoilR.exe
|
||||
args: -9
|
||||
strip: false
|
||||
ui: true
|
||||
- os: macos-latest
|
||||
file: target/release/boilr
|
||||
asset_name: macos_x86_64_BoilR
|
||||
args: -9
|
||||
strip: false
|
||||
ui: false
|
||||
- os: macos-latest
|
||||
file: target/aarch64-apple-darwin/release/boilr
|
||||
asset_name: macos_darwin_BoilR
|
||||
args: -9
|
||||
strip: false
|
||||
ui: false
|
||||
target: aarch64-apple-darwin
|
||||
- os: macos-latest
|
||||
file: target/release/boilr
|
||||
asset_name: macos_x86_64_ui_BoilR
|
||||
args: -9
|
||||
strip: false
|
||||
ui: true
|
||||
- os: macos-latest
|
||||
file: target/aarch64-apple-darwin/release/boilr
|
||||
asset_name: macos_darwin_ui_BoilR
|
||||
args: -9
|
||||
strip: false
|
||||
ui: true
|
||||
target: aarch64-apple-darwin
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install dependencies
|
||||
if: ${{ matrix.os == 'ubuntu-latest'}}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libclang-dev libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
|
||||
- name: Rust Cache
|
||||
id: rust_cache
|
||||
uses: Swatinem/rust-cache@v1.3.0
|
||||
- name: Install dependencies
|
||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.ui}}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
|
||||
- name: Build Release Version UI
|
||||
if: ${{ matrix.target != 'aarch64-apple-darwin' && matrix.ui == true}}
|
||||
run: cargo build --release --features ui
|
||||
- name: Build Release Version CLI
|
||||
if: ${{ matrix.target != 'aarch64-apple-darwin' && matrix.ui == false}}
|
||||
run: cargo build --release
|
||||
- name: Build aarch64 Release Version CLI
|
||||
if: ${{matrix.target == 'aarch64-apple-darwin' && matrix.ui == false}}
|
||||
- name: Build Release Version
|
||||
if: ${{ matrix.target != 'aarch64-apple-darwin' }}
|
||||
run: cargo build --release
|
||||
- name: Build aarch64 Release Version
|
||||
if: ${{matrix.target == 'aarch64-apple-darwin' }}
|
||||
run: rustup target add aarch64-apple-darwin && cargo build --release --target aarch64-apple-darwin
|
||||
- name: Build aarch64 Release Version UI
|
||||
if: ${{matrix.target == 'aarch64-apple-darwin' && matrix.ui == true}}
|
||||
run: rustup target add aarch64-apple-darwin && cargo build --release --target aarch64-apple-darwin --features ui
|
||||
- name: Compress binaries
|
||||
uses: svenstaro/upx-action@v2
|
||||
with:
|
||||
|
||||
+4
-9
@@ -20,16 +20,11 @@ dashmap = { version = "^5.2.0", features = ["serde"] }
|
||||
is_executable = "^1.0.1"
|
||||
rusty-leveldb = "^0.3.6"
|
||||
base64 = "^0.13.0"
|
||||
eframe = { version = "0.17.0", optional = true }
|
||||
egui = { version = "0.17.0", optional = true }
|
||||
image = { version = "0.24.1", optional = true, features = ["png"] }
|
||||
toml = { version = "^0.5.8", optional = true }
|
||||
eframe = { version = "0.17.0" }
|
||||
egui = { version = "0.17.0" }
|
||||
image = { version = "0.24.1", features = ["png"] }
|
||||
toml = { version = "^0.5.8" }
|
||||
sysinfo = "0.23.10"
|
||||
|
||||
[features]
|
||||
#default = ["ui"]
|
||||
ui = ["eframe", "egui","toml","image"]
|
||||
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
winreg = "0.10.1"
|
||||
|
||||
@@ -39,7 +39,7 @@ Optionally you can set BoilR up to automatically download artwork from [SteamGri
|
||||
|
||||
- Download the latest release from the [releases page](https://github.com/PhilipK/BoilR/releases).
|
||||
- Run the executable.
|
||||
- Click Synchronize.
|
||||
- Click Import Games.
|
||||
- Restart Steam to see your new shortcuts.
|
||||
|
||||
|
||||
@@ -50,21 +50,29 @@ Optionally you can set BoilR up to automatically download artwork from [SteamGri
|
||||
- Click Syncrhonize
|
||||
|
||||
|
||||
## Tips for steam deck
|
||||
## Tips
|
||||
|
||||
### Tips for steam deck
|
||||
|
||||
I currently don't have a steam deck, which slows down development for it a bit.
|
||||
There might still be problems specific to the deck, so if you run into one please check the issues.
|
||||
|
||||
If you have a problem that a game wont launch, try to manually set a proton version for it.
|
||||
|
||||
## Tips for linux
|
||||
### Tips for linux
|
||||
|
||||
If you are running linux (this includes Steam Dekc) and are running into problems check [tips for linux seciton](tips_for_linux.md)
|
||||
|
||||
## Configuration
|
||||
### Configuration
|
||||
|
||||
Most people will not have to configure anything, just open BoilR and click Synchronize, but it is possible to configure a lot, see the [configuration section](configuration.md)
|
||||
|
||||
### Run as CLI
|
||||
|
||||
In previous releases there was both a CLI and UI version of BoilR, now there is only a UI version.
|
||||
But you can add the commandling argument ``--no-ui`` and then the UI version will act like the old CLI version.
|
||||
This saves some CO2 from not having to build 2 versions of BoilR for each platform, and it also makes development easier.
|
||||
|
||||
|
||||
## What is up with the name BoilR?
|
||||
|
||||
@@ -80,10 +88,19 @@ Check out the [discussions](https://github.com/PhilipK/BoilR/discussions) and fe
|
||||
|
||||
## How can I help/contribute?
|
||||
If you are a coder, you can fork this repo and then create a pull request, they are very welcome!
|
||||
To run BoilR just write:
|
||||
|
||||
```shell
|
||||
cargo run
|
||||
```
|
||||
|
||||
If you are not a developer (or you don't like to code in Rust) spread the work and create issues/discussions for anything.
|
||||
|
||||
## Can I donate to support BoilR?
|
||||
Nope, please don't, donate it to your favorite charity instead, and if you don't have one of those may I suggest something like [GiveWell](https://www.givewell.org/).
|
||||
|
||||
|
||||
|
||||
|
||||
## License
|
||||
This project is dual license MIT or Apache 2.0 , it is up to you. In short, you can do what you want with this project, but if in doubt read the license files.
|
||||
|
||||
+1
-24
@@ -11,38 +11,15 @@ mod steam;
|
||||
mod steamgriddb;
|
||||
mod sync;
|
||||
mod uplay;
|
||||
|
||||
#[cfg(feature = "ui")]
|
||||
mod ui;
|
||||
|
||||
use std::error::Error;
|
||||
|
||||
#[cfg(not(feature = "ui"))]
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn Error>> {
|
||||
|
||||
let settings = settings::Settings::new()?;
|
||||
if settings.steam.stop_steam{
|
||||
crate::steam::ensure_steam_stopped();
|
||||
}
|
||||
settings::Settings::write_config_if_missing();
|
||||
let usersinfo = sync::run_sync(&settings,&mut None).unwrap();
|
||||
sync::download_images(&settings,&usersinfo,&mut None).await;
|
||||
if settings.steam.start_steam{
|
||||
crate::steam::ensure_steam_started(&settings.steam);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui")]
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
|
||||
let mut args = std::env::args();
|
||||
if args.len() > 1 && args.nth(1).unwrap_or_default() == "--no-ui" {
|
||||
ui::run_sync();
|
||||
Ok(())
|
||||
}else{
|
||||
ui::run_ui()
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,20 +54,6 @@ impl Settings {
|
||||
|
||||
result
|
||||
}
|
||||
|
||||
pub fn write_config_if_missing() {
|
||||
let config_path = std::path::Path::new("config.toml");
|
||||
if !config_path.exists() {
|
||||
let worked = std::fs::write(config_path, include_str!("defaultconfig.toml"));
|
||||
match worked {
|
||||
Ok(_) => println!("Create configuration file at {:?}", &config_path),
|
||||
Err(err) => println!(
|
||||
"Could not create configuration file at {:?}, reason: {:?}",
|
||||
&config_path, err
|
||||
),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn sanitize_auth_key(result: &mut Result<Settings, ConfigError>) {
|
||||
|
||||
+2
-2
@@ -41,7 +41,7 @@ impl MyEguiApp {
|
||||
}
|
||||
}
|
||||
pub fn run_sync(&mut self) {
|
||||
let (sender,mut reciever ) = watch::channel(SyncProgress::NotStarted);
|
||||
let (sender,reciever ) = watch::channel(SyncProgress::NotStarted);
|
||||
let settings = self.settings.clone();
|
||||
if settings.steam.stop_steam{
|
||||
crate::steam::ensure_steam_stopped();
|
||||
@@ -376,7 +376,7 @@ pub fn run_ui() -> Result<(), Box<dyn Error>> {
|
||||
|
||||
let mut native_options = eframe::NativeOptions::default();
|
||||
native_options.initial_window_size = Some(egui::Vec2{
|
||||
x:500.,
|
||||
x:800.,
|
||||
y:500.
|
||||
});
|
||||
native_options.icon_data = Some(get_logo_icon());
|
||||
|
||||
Reference in New Issue
Block a user