Skip to content

Commit

Permalink
Make UI default, and remove CLI version (#83)
Browse files Browse the repository at this point in the history
  • Loading branch information
PhilipK authored Apr 15, 2022
1 parent fcc3a4a commit aa05de9
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 100 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
57 changes: 11 additions & 46 deletions .github/workflows/release_on_v_tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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: Rust Cache
id: rust_cache
uses: Swatinem/[email protected]
- name: Install dependencies
if: ${{ matrix.os == 'ubuntu-latest' && matrix.ui}}
if: ${{ matrix.os == 'ubuntu-latest'}}
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}}
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/[email protected]
- 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:
Expand Down
13 changes: 4 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
25 changes: 21 additions & 4 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.


Expand All @@ -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?

Expand All @@ -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.
25 changes: 1 addition & 24 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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()

}
}
}
14 changes: 0 additions & 14 deletions src/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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>) {
Expand Down
4 changes: 2 additions & 2 deletions src/ui/uiapp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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());
Expand Down

0 comments on commit aa05de9

Please sign in to comment.