aboutsummaryrefslogtreecommitdiff
path: root/src-tauri/src/lib.rs
AgeCommit message (Collapse)Author
2023-05-10refactor: Move `check_mod_version_number`GeckoEidechse
to northstar module
2023-05-09Revert "refactor: Move `check_is_valid_game_path` to `main.rs` (#335)"GeckoEidechse
This reverts commit 1ce900ca2d5cf91ae410c2ec918e1431aa15a677.
2023-05-09refactor: Move `check_is_valid_game_path` to `main.rs` (#335)GeckoEidechse
Part of #329
2023-05-09refactor: Move `launch_northstar` to own module (#338)GeckoEidechse
Part of #329
2023-05-09refactor: Move `convert_release_candidate_number` to `main.rs` (#334)GeckoEidechse
Part of #329
2023-05-09refactor: Move `get_enabled_mods` to `main.rs` (#333)GeckoEidechse
Part of #329
2023-05-07refactor: Prepare code for installing older Northstar versions (#305)GeckoEidechse
* refactor: Rename function Rename `install_northstar` to `install_latest_northstar` to better indicate what it does * refactor: Have updater just call installer * refactor: Move package selection to calling func During installation, package should already be known so get package name earlier as opposed to passing `Option<T>` * chore: Format fix * refactor: Allow passing NS version to install If no version is passed, fallback is to latest * refactor: Rename function Back to `install_northstar` from `install_latest_northstar` as the function can now install any Northstar version * refactor: Do a borrow instead of clone * refactor: Use `map` and `unwrap_or` instead of `match`
2023-05-07fix: Fix typoGeckoEidechse
2023-04-16Use pass-by-reference where possible (#266)cat_or_not
Use pass-by-reference where possible also contains some other small changes
2023-04-10feat: Show download progress for installing Northstar (#200)GeckoEidechse
* chore: Bump libthermite to 0.5.3 This adds a change needed for making progressbar work on dowload * wip: First attempt at showing download progress Simply prints it to JavaScript console for now * feat: Emit download progress at most every 250ms If we spam emit too much we use a lot of extra resources, slowing down the actual download * feat: Initial messages for extracting * feat: Add install state enum * refactor: Change payload to current + total size downloaded * fix: Remove extra emit * fix: Remove extra emit * refactor: Rename struct * refactor: Move struct to top of file * feat: Add TypeScript bindings * feat: Add console logs for printing state for now * fix: Remove duplicate identifier * feat: Initial progressbar in frontend * fix: Remove event listener added for debugging * feat: Display status and downloaded bytes * feat: Set loading bar to indeterminate on extract * fix: Phrasing in comment * feat: Add i18n for progress state * refactor: Adjust control flow do not show downloaded size anymore during extraction * fix: Manually specify progressbar size * fix: Update download progress every 100ms instead of 250ms Gives impression of faster / more fluent download. * feat: layout does not move when progress bar is hidden * feat: fix progress bar width to 200px * refactor: put services container in a flex container, for it not to overlap play button * refactor: export progress bar to dedicated component file * refactor: Update status first outside of branch * fix: Proper typing of event payload * fix: Do not assign to unused variable --------- Co-authored-by: Rémy Raes <contact@remyraes.com>
2023-04-06feat: Add ability to launch via Steam to DevView (#178)Jan
* feat: Add ability to launch via Steam * document what get_titanfall_proton() does * revert explicit use of newly imported Path * Format source code to pass CI * Use new steamlocate compat_tool helper * cargo fmt * fix: Address various clippy issues Addresses clippy warnings caused by newly introduced code * fix: Cargo toml dependency formatting
2023-04-02fix: Another set of various clippy fixes (#246)GeckoEidechse
* fix: Remove unnecessary clone * fix: Remove redundant field name in struct init * fix: Single-char string constant used as pattern * fix: calling `push_str()` using a single-character string literal * fix: this pattern reimplements `Option::unwrap_or` * fix: Remove unnecessary borrow * fix: Remove useless use of `format!` * fix: called `inspect(..).for_each(..)` on an `Iterator` * fix: Formatting
2023-03-26refactor: Replace all `println!()` with log statements (#236)GeckoEidechse
* refactor: Replace all println with calls to logger in `do_install()` * refactor: Replace all println with calls to logger in `verify_install_location()` * refactor: Replace all println with calls to logger in `get_northstar_release_notes()` * refactor: Replace all println with calls to logger in `update_northstar_caller()` * refactor: Replace all println with calls to logger in `install_northstar_caller()` * refactor: Replace all println with calls to logger in `apply_launcher_pr()` * refactor: Replace all println with calls to logger in `apply_mods_pr()` * refactor: Replace all println with calls to logger in `find_game_install_location()` * refactor: Replace all println with calls to logger in `install_mod_caller()` * refactor: Replace all println with calls to logger in `set_mod_enabled_status()` * refactor: Replace all println with calls to logger in `parse_installed_mods()` * refactor: Replace all println with calls to logger in `origin_install_location_detection()` * refactor: Replace all println with calls to logger in `query_thunderstore_packages_api()` * refactor: Replace all println with calls to logger in `add_batch_file()` * refactor: Replace all println with calls to logger in `extract()` * refactor: Replace all println with calls to logger in `check_is_northstar_outdated()`
2023-03-26fix: Adjust code for single iteration loop (#232)GeckoEidechse
* fix: Adjust code for single iteration loop `clippy` said this is way is better... * refactor: Implement more compact suggestion * refactor: Implement more compact suggestion
2023-03-26fix: Remove unnecessary borrows (#231)GeckoEidechse
According to `clippy`
2023-03-22fix: Address clippy warnings regarding format!() (#229)GeckoEidechse
Use the varible name directly inside the string
2023-03-22fix: Remove unnecessary `.to_string()` (#230)GeckoEidechse
Thanks clippy <3
2023-03-22fix: Address clippy errors in glibc parsing code (#226)GeckoEidechse
2023-03-21feat: Proper logging (#223)GeckoEidechse
* feat: Initial setup of sentry logging * refactor: Replace some println with log call Not replacing all cause too large diff
2023-03-20fix: Add error handling if default EA App path (#211)GeckoEidechse
* fix: Add error handling if default EA App path We cannot install to `C:\Program Files\EA Games\Titanfall2` cause Windows™ As such if install fails we check for that path and show according error message * fix: Check only for `Program Files` path instead of the full one As the issue is technically the permissions with `Program Files`, not the EA Games subdirectory... * fix: Format check error
2023-03-13feat: Add some breadcrumbs printing install path (#206)GeckoEidechse
This will show up in sentry dashboard on crash and will help me solve a thread crash that's caused by Northstar failing to get installed.
2023-02-25refactor: Properly set cfg macro for OS conditional compilation (#186)GeckoEidechse
* refactor: Properly set cfg macro for OS conditional compilation * docs: Add comment about MacOS
2023-02-07feat: Show mod version in LocalMods View (#159)GeckoEidechse
* refactor: Parse using serde deserialisation * refactor: Parse using serde deserial. (TS mod str) Reduce code by making use of serde deserialisation. Still supports legacy method * chore: Remove commented out fields While useful, it just made the code messy... * feat: Show mod version in LocalMods view * refactor: Move mod version to new line in source code Makes diffing in git easier * fix: Hide version number if not available
2023-02-06chore: Bump libthermite version to 0.5.2 (#163)GeckoEidechse
And fix corresponding code that broke in the process Basically just removing `await`s as the networking functions are no longer async.
2023-02-05feat: Auto-generate TS bindings (#140)GeckoEidechse
* feat: Initial trial to auto-generate TS bindings That way instead of manually duplicating code, we can just run `cargo test` to generate them. * fix: Update forgotten imports * refactor: Move FlightCoreVersion to autogen bind TypeScript binding autogenerated from Rust code * refactor: Move ReleaseInfo to autogen binding TypeScript binding autogenerated from Rust code * docs: Explain how to generate TS binds from Rust * feat: Check for binding changes in CI Checks for uncommitted binding changes in CI and fails if they differ * style: Formatting fixes
2023-01-31refactor: Remove unnecessary use of anyhow (#150)GeckoEidechse
2023-01-13feat: Add backend code for getting playercount (#135)GeckoEidechse
* feat: Initial backend code to get the playercount from the Northstar master server together with servercount * fix: Push correct backend code * feat: Load playercount on application load and show on PlayView * refactor: Store global const in separate file Moved user agent there for now * refactor: User user agent from global const * refactor: Move masterserver URL into global const * refactor: Remove temporary variable * fix: Do proper typing for playercount return value * feat: Change text if unable to load playercount So instead of showing some wrong value, we just say that we were unable to load it. * fix: Remove leftover print statement * refactor: Move struct to library source file * fix: Remove break element * fix: Remove frontend display of playercount This allows for separate PR for adding backend code early. * refactor: serverlist endpoint var to global const
2023-01-13refactor: Bump libthermite (#133)GeckoEidechse
* chore: Bump libthermite to v0.4.0-rc.1 And update broken code in FlightCore accordingly * chore: Bump libthermite to v0.4.0 And update broken code in FlightCore accordingly * feat: Parse TS mod string using new standard Instead of reading `mod.json`, we now build Thunderstore mod string using `manifest.json` and `thunderstore_author.txt`. The old method for reading is still supported for now but will likely be replaced by a converted function in the future. See also discussion in https://github.com/0neGal/viper/issues/165
2023-01-07refactor: Store global const in separate file (#131)GeckoEidechse
Moved user agent there for now
2022-12-20feat: Alternatively check if EA App is running (#115)GeckoEidechse
2022-12-13feat: Start Northstar properly detached (#112)GeckoEidechse
Simply run cmd with `start "" "PATH/TO/NORTHSTAR_EXE"` Co-authored-by: ASpoonPlaysGames <66967891+ASpoonPlaysGames@users.noreply.github.com> Co-authored-by: ASpoonPlaysGames <66967891+ASpoonPlaysGames@users.noreply.github.com>
2022-12-12feat: Expose installed NS mod directory (#109)GeckoEidechse
* feat: Expose installed NS mod directory This allows other functions to get a mod directory directly which is useful for e.g. deleting a mod. * refactor: Return vector of NorthstarMod instead of unnamed Tuples
2022-11-30refactor: Remove the "Origin running" check from frontend (#94)GeckoEidechse
* refactor: Remove Origin running check in frontend We already perform the check in the backend. Frontend does not check for OS and as such on Linux will just always tell you that Origin is not running. * feat: Show notification toast, not alert pop-up * refactor: Perform OS check before Origin check
2022-11-28style: Auto-format all Rust code (#84)GeckoEidechse
2022-11-27feat: Option to launch NS bypassing update check (#59)GeckoEidechse
* feat: Option to launch NS bypassing update check Hidden behind dev view * refactor: Use existing function to launch NS Instead of duplicating code * feat: Adjust button to allow bypassing all checks
2022-11-25refactor: Move function to dedicated module (#67)GeckoEidechse
Getting log files is part of repair and troubleshooting
2022-11-22refactor: Start moving NS related logic to own mod (#63)GeckoEidechse
2022-11-19feat: Return Thunderstore mod string of installed mods. (#56)GeckoEidechse
* refactor: Rename function to better differentiate what it does * refactor: Add TS mod string field to NS mod struct This allows us to expose to frontend which Thunderstore mod a Northstar mod may belong to. Field is optional as not all mods may contain a Thunderstore mod string for example when they were installed manually. * feat: Add TS mod string field to NS mod interace * feat: Parse TS mod string and expose to frontend * fix: Mark unused variable as such
2022-11-14refactor: Move GitHub API fetch to submodule and re-use existing function (#51)GeckoEidechse
* refactor: Import all functions from lib So that I don't need to update the header each time I add/remove a function. * refactor: Move function to submodule Move it to module for GitHub API related tasks. * refactor: Re-use existing func for fetching GH API
2022-11-13chore: Bump libthermite version to 0.3.3 (#49)GeckoEidechse
2022-11-10feat: Parse actually installed mods (#38)GeckoEidechse
* feat: Parse actually installed mods Instead of using solely `enabledmods.json` parse the `mod.json` of found mods in `mods` folder. * refactor: Remove leftover print statements * refactor: Move logic into dedicated module * fix: Load mods despite `enabledmods.json` missing Previously we would error out early if `enabledmods.json` was missing despite not actually needing it for mod list. * style: Autoformat
2022-11-07refactor: Move functions to dedicated file (#41)GeckoEidechse
Only a single function for now as a sort of proof-of-concept.
2022-11-03refactor: Rename function to better fit behaviour (#40)GeckoEidechse
2022-11-03fix: Resolve thread crash due to block in async (#39)GeckoEidechse
Set the function to async but it was still using blocking version of reqwest.
2022-11-02refactor: Return error string instead of anyhow!() (#36)GeckoEidechse
All that is returned as the error type is a string so there's no point in using a custom error type when we can just have the error type be a string. Co-authored-by: Remy Raes <contact@remyraes.com>
2022-11-02refactor: Use existing function for enabled mods (#34)GeckoEidechse
Instead of re-implementing existing logic just re-use what we already have.
2022-10-21feat: Add initial skeleton for ModsView (#27)GeckoEidechse
* feat: Backend code to get list of installed mods For now simply parses `enabledmods.json`. Note that this file will not be up-to-date if the user just installed a mod but hasn't launched Northstar yet. * feat: Empty skeleton page for ModsView Will be populated later with list of installed mods * chore: Remove leftover print statement
2022-10-20refactor: Various formatting and fixes (#23)GeckoEidechse
* refactor: Add error return type * style: Auto-format Only minor changes, did not take over all changes from auto-format. * refactor: Rename function to get FC version number To make it more clear which version number we're getting (FlightCore vs Northstar)
2022-10-20fix: Strip leading zeroes from rc version number (#24)GeckoEidechse
This is more of a hotfix, we should really just use propery regex or something better instead.
2022-10-19refactor: Use `Result<>` return type for Linux checks (#21)GeckoEidechse
* refactor: Use result return type for Linux checks * refactor: Store min required ldd version in const This way we only need to update a single variable in case min required version changes.