Skip to content

Commit

Permalink
fix: removed broad scope for assets and fs
Browse files Browse the repository at this point in the history
  • Loading branch information
Tormak9970 committed Apr 4, 2023
1 parent 31e32c5 commit 9c8ad7f
Show file tree
Hide file tree
Showing 5 changed files with 188 additions and 6 deletions.
135 changes: 135 additions & 0 deletions .github/workflows/debug-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: Debug Release

on:
push:
branches:
- "debug-release"

jobs:
create-release:
permissions:
contents: write
runs-on: ubuntu-20.04
outputs:
release_id: ${{ steps.create-release.outputs.result }}
change_log: ${{ steps.changelog.outputs.clean_changelog }}
version: ${{ steps.changelog.outputs.version }}
tag: ${{ steps.changelog.outputs.tag }}

steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16

- name: Create Release
id: create-release
uses: actions/github-script@v6
env:
RELEASE_TAG: ${{ steps.changelog.outputs.tag }}
RELEASE_LOG: ${{ steps.changelog.outputs.clean_changelog }}
with:
script: |
const { data } = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: `debug-${process.env.RELEASE_TAG}`,
name: `Steam Art Manager debug-${process.env.RELEASE_TAG}`,
body: `Download the release for your platform below`,
draft: true,
prerelease: true
})
return data.id
build-tauri:
needs: create-release
permissions:
contents: write
strategy:
fail-fast: false
matrix:
platform: [ubuntu-20.04, windows-latest]

runs-on: ${{ matrix.platform }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: release

- name: Setup Node
uses: actions/setup-node@v3
with:
cache: 'npm'
cache-dependency-path: package-lock.json
node-version: 16

- name: Install Rust Stable
uses: dtolnay/rust-toolchain@stable

- name: Install Dependencies (Linux Only)
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install Frontend Dependencies
run: npm install

- name: Cache Rust Dependencies
uses: actions/cache@v3
with:
path: |
~/src-tauri/.cargo/bin/
~/src-tauri/.cargo/registry/index/
~/src-tauri/.cargo/registry/cache/
~/src-tauri/.cargo/git/db/
~/src-tauri/target/
key: ${{ runner.os }}-cargo-${{ hashFiles('src-tauri/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-

- name: Build App
uses: tauri-apps/tauri-action@dev
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
with:
releaseId: ${{ needs.create-release.outputs.release_id }}
tagName: ${{ needs.create-release.outputs.tag }}
releaseBody: "Download the release for your platform below"
releaseDraft: true
includeUpdaterJson: true

publish-release:
needs: [create-release, build-tauri]
permissions:
contents: write
runs-on: ubuntu-20.04

steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: "debug-release"

- name: Publish Release
id: publish-release
uses: actions/github-script@v6
env:
release_id: ${{ needs.create-release.outputs.release_id }}
with:
script: |
github.rest.repos.updateRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: process.env.release_id,
draft: false,
prerelease: true
})
40 changes: 38 additions & 2 deletions src-tauri/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ use appinfo_vdf_parser::read_vdf;
use home::home_dir;

use serde;
use tauri::{AppHandle, api::dialog::blocking::FileDialogBuilder};
use steam::get_steam_root_dir;
use tauri::{
AppHandle,
api::dialog::blocking::FileDialogBuilder,
FsScope, Manager
};

type GridImageCache = HashMap<String, HashMap<String, String>>;

Expand Down Expand Up @@ -182,6 +187,36 @@ async fn save_changes(app_handle: AppHandle, current_art: String, original_art:
}
}

#[tauri::command]
async fn add_steam_to_scope(app_handle: AppHandle) -> bool {
let steam_path = get_steam_root_dir();
let steam_parent_dir = steam_path.parent().unwrap();

let fs_scope = app_handle.fs_scope();
let asset_scope = app_handle.asset_protocol_scope();

let fs_res = FsScope::allow_directory(&fs_scope, steam_parent_dir, true);
let asset_res = FsScope::allow_directory(&asset_scope, steam_parent_dir, true);

if fs_res.is_ok() && asset_res.is_ok() {
logger::log_to_file(app_handle.to_owned(), "Added Steam directory to scope.", 0);
return true;
} else if fs_res.is_err() {
let err = fs_res.err().unwrap();
logger::log_to_file(app_handle.to_owned(), format!("Error adding Steam directory to scope. FS Scope Error: {}", err.to_string()).as_str(), 0);
return false;
} else if asset_res.is_err() {
let err = asset_res.err().unwrap();
logger::log_to_file(app_handle.to_owned(), format!("Error adding Steam directory to scope. Asset Scope Error: {}", err.to_string()).as_str(), 0);
return false;
} else {
let fs_err = fs_res.err().unwrap();
let asset_err = asset_res.err().unwrap();
logger::log_to_file(app_handle.to_owned(), format!("Error adding Steam directory to scope. FS Scope Error: {}. Asset Scope Error: {}", fs_err.to_string(), asset_err.to_string()).as_str(), 0);
return false;
}
}

fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_persisted_scope::init())
Expand All @@ -195,7 +230,8 @@ fn main() {
export_grids_to_zip,
import_grids_from_zip,
read_appinfo_vdf,
save_changes
save_changes,
add_steam_to_scope
])
.run(tauri::generate_context!())
.expect("error while running tauri application");
Expand Down
6 changes: 2 additions & 4 deletions src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@
"$APPCONFIG/**",
"$DATA/**",
"$APPLOG/**",
"$APPCACHE/**",
"**"
"$APPCACHE/**"
]
},
"http": {
Expand All @@ -52,8 +51,7 @@
"$APPCONFIG/**",
"$DATA/**",
"$APPLOG/**",
"$APPCACHE/**",
"**"
"$APPCACHE/**"
]
},
"shell": {
Expand Down
5 changes: 5 additions & 0 deletions src/lib/controllers/AppController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ export class AppController {

hiddenGameIds.set(settings.hiddenGameIds);
LogController.log("App setup complete.");

const wasAdded = await RustInterop.addSteamToScope();
if (!wasAdded) {
ToastController.showWarningToast("Failed to add Steam to scope!");
}
}

/**
Expand Down
8 changes: 8 additions & 0 deletions src/lib/controllers/RustInterop.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,12 @@ export class RustInterop {
const res = await invoke<string>("save_changes", { currentArt: JSON.stringify(currentArt), originalArt: JSON.stringify(originalArt) });
return JSON.parse(res);
}

/**
* Adds the steam directory to the fsScope.
* @returns Whether the scope was successfully added.
*/
static async addSteamToScope(): Promise<boolean> {
return await invoke<boolean>("add_steam_to_scope", {});
}
}

0 comments on commit 9c8ad7f

Please sign in to comment.