* Initial bug fixes

* fix compile error on non-mac

* Fix even more bugs

* Fix more

* fix more

* fix build

* fix build

* working basic

* removed zip

* working functions

* merge fixes

* fixed loadintg bar bug

* changed to one layer deep

* forge version numbers

* overrides dont include mrpack

* merge

* fixes

* fixes

* fixed deletion

* merge errors

* force sync before export

* removed testing

* missed line

* removed console log

* mac error reverted

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
This commit is contained in:
Wyatt Verchere
2023-06-26 14:29:53 -07:00
committed by GitHub
parent 1c3441a605
commit 47970d932b
14 changed files with 509 additions and 59 deletions

View File

@@ -134,6 +134,42 @@ pub async fn profile_remove_project(
profile::remove_project(path, project_path).await?;
Ok(())
}
// Exports a profile to a .mrpack file (export_location should end in .mrpack)
// invoke('profile_export_mrpack')
#[tauri::command]
pub async fn profile_export_mrpack(
path: &Path,
export_location: PathBuf,
included_overrides: Vec<String>,
version_id: Option<String>,
) -> Result<()> {
profile::export_mrpack(
path,
export_location,
included_overrides,
version_id,
)
.await?;
Ok(())
}
// Given a folder path, populate a Vec of all the subfolders
// Intended to be used for finding potential override folders
// profile
// -- folder1
// -- folder2
// -- file1
// => [folder1, folder2]
#[tauri::command]
pub async fn profile_get_potential_override_folders(
profile_path: PathBuf,
) -> Result<Vec<PathBuf>> {
let overrides =
profile::get_potential_override_folders(profile_path).await?;
Ok(overrides)
}
// Run minecraft using a profile using the default credentials
// Returns the UUID, which can be used to poll
// for the actual Child in the state.

View File

@@ -34,16 +34,15 @@ pub fn show_in_folder(path: String) -> Result<()> {
#[cfg(target_os = "linux")]
{
use std::fs;
use std::fs::metadata;
use std::path::PathBuf;
if path.contains(",") {
if path.contains(',') {
// see https://gitlab.freedesktop.org/dbus/dbus/-/issues/76
let new_path = match metadata(&path)?.is_dir() {
true => path.clone(),
true => path,
false => {
let mut path2 = PathBuf::from(path.clone());
let mut path2 = PathBuf::from(path);
path2.pop();
path2.to_string_lossy().to_string()
}