Skip to content

Commit

Permalink
fix: better startup paths (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
stringhandler authored Aug 7, 2024
1 parent 9176389 commit e4c709f
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 47 deletions.
4 changes: 3 additions & 1 deletion src-tauri/src/cpu_miner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ impl CpuMiner {
cpu_miner_config: &CpuMinerConfig,
local_mm_proxy: &MmProxyManager,
base_path: PathBuf,
cache_dir: PathBuf,
log_dir: PathBuf,
window: tauri::Window,
) -> Result<(), anyhow::Error> {
if self.watcher_task.is_some() {
Expand Down Expand Up @@ -69,7 +71,7 @@ impl CpuMiner {
}
};
let xmrig = XmrigAdapter::new(xmrig_node_connection, "44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A".to_string() );
let (mut _rx, mut xmrig_child, client) = xmrig.spawn(window.clone())?;
let (mut _rx, mut xmrig_child, client) = xmrig.spawn(cache_dir, log_dir, window.clone())?;
self.api_client = Some(client);

self.watcher_task = Some(tauri::async_runtime::spawn(async move {
Expand Down
12 changes: 7 additions & 5 deletions src-tauri/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ async fn setup_application<'r>(
},
);
let data_dir = app.path_resolver().app_local_data_dir().unwrap();
let cache_dir = app.path_resolver().app_cache_dir().unwrap();
let task1 = state
.node_manager
.ensure_started(state.shutdown.to_signal(), data_dir.clone(), window.clone())
Expand All @@ -81,11 +82,10 @@ async fn setup_application<'r>(
e.to_string()
});

let task3 =
XmrigAdapter::ensure_latest(cache_dir().unwrap(), false, window.clone()).map_err(|e| {
error!(target: LOG_TARGET, "Could not download xmrig: {:?}", e);
e.to_string()
});
let task3 = XmrigAdapter::ensure_latest(cache_dir, false, window.clone()).map_err(|e| {
error!(target: LOG_TARGET, "Could not download xmrig: {:?}", e);
e.to_string()
});

match try_join!(task1, task2, task3) {
Ok(_) => {
Expand Down Expand Up @@ -133,6 +133,8 @@ async fn start_mining<'r>(
&config,
&mm_proxy_manager,
app.path_resolver().app_local_data_dir().unwrap(),
app.path_resolver().app_cache_dir().unwrap(),
app.path_resolver().app_log_dir().unwrap(),
window.clone(),
)
.await
Expand Down
7 changes: 2 additions & 5 deletions src-tauri/src/merge_mining_adapter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,13 @@ impl ProcessAdapter for MergeMiningProxyAdapter {

fn spawn_inner(
&self,
_log_folder: PathBuf,
data_dir: PathBuf,
window: tauri::Window,
) -> Result<(Self::Instance, Self::StatusMonitor), Error> {
let inner_shutdown = Shutdown::new();
let shutdown_signal = inner_shutdown.to_signal();

let working_dir = data_local_dir()
.unwrap()
.join("tari-universe")
.join("mmproxy");
let working_dir = data_dir.join("mmproxy");
std::fs::create_dir_all(&working_dir)?;
let args: Vec<String> = vec![
"-b".to_string(),
Expand Down
4 changes: 2 additions & 2 deletions src-tauri/src/minotari_node_adapter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ impl ProcessAdapter for MinotariNodeAdapter {

fn spawn_inner(
&self,
_log_path: PathBuf,
data_dir: PathBuf,
window: tauri::Window,
) -> Result<(Self::Instance, Self::StatusMonitor), Error> {
let inner_shutdown = Shutdown::new();
let shutdown_signal = inner_shutdown.to_signal();

info!(target: LOG_TARGET, "Starting minotari node");
let working_dir = data_local_dir().unwrap().join("tari-universe").join("node");
let working_dir = data_dir.join("node");
std::fs::create_dir_all(&working_dir)?;

let mut args: Vec<String> = vec![
Expand Down
7 changes: 2 additions & 5 deletions src-tauri/src/wallet_adapter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,15 @@ impl ProcessAdapter for WalletAdapter {
type StatusMonitor = WalletStatusMonitor;
fn spawn_inner(
&self,
_log_path: PathBuf,
data_dir: PathBuf,
window: tauri::Window,
) -> Result<(Self::Instance, Self::StatusMonitor), Error> {
// TODO: This was copied from node_adapter. This should be DRY'ed up
let inner_shutdown = Shutdown::new();
let shutdown_signal = inner_shutdown.to_signal();

info!(target: LOG_TARGET, "Starting read only wallet");
let working_dir = data_local_dir()
.unwrap()
.join("tari-universe")
.join("wallet");
let working_dir = data_dir.join("wallet");
std::fs::create_dir_all(&working_dir)?;

let mut args: Vec<String> = vec![
Expand Down
10 changes: 2 additions & 8 deletions src-tauri/src/xmrig/latest_release.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,10 @@ pub struct XmrigRelease {
}

impl XmrigRelease {
pub fn get_asset(&self, os: &str) -> Option<&Asset> {
pub fn get_asset(&self, id: &str) -> Option<&Asset> {
for asset in &self.assets {
info!(target: LOG_TARGET, "Checking asset {:?}", asset);
// macos-arm64 doesn't have an os field for some reason
if asset.os.is_none() {
if asset.id == os {
return Some(asset);
}
}
if asset.os.as_deref() == Some(os) {
if asset.id == id {
return Some(asset);
}
}
Expand Down
32 changes: 13 additions & 19 deletions src-tauri/src/xmrig_adapter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,16 @@ impl XmrigAdapter {
}
pub fn spawn(
&self,
cache_dir: PathBuf,
logs_dir: PathBuf,
window: tauri::Window,
) -> Result<(Receiver<CpuMinerEvent>, XmrigInstance, XmrigHttpApiClient), anyhow::Error> {
let (_tx, rx) = tokio::sync::mpsc::channel(100);
let cache_dir = tauri::api::path::cache_dir()
.ok_or(anyhow::anyhow!("Failed to get cache dir"))?
.join("tari-universe");
let force_download = self.force_download;
let xmrig_shutdown = Shutdown::new();
let mut shutdown_signal = xmrig_shutdown.to_signal();
let mut args = self.node_connection.generate_args();
let xmrig_log_file = cache_dir.join("log").join("xmrig.log");
let xmrig_log_file = logs_dir.join("xmrig.log");
std::fs::create_dir_all(xmrig_log_file.parent().unwrap())?;
args.push(format!("--log-file={}", &xmrig_log_file.to_str().unwrap()));
args.push(format!("--http-port={}", self.http_api_port));
Expand Down Expand Up @@ -129,22 +128,17 @@ impl XmrigAdapter {
force_download: bool,
window: tauri::Window,
) -> Result<String, Error> {
dbg!(&cache_dir);
let latest_release = fetch_latest_release().await?;
let xmrig_dir = cache_dir
.join("com.tari.universe")
.join("xmrig")
.join(&latest_release.version);
let xmrig_dir = cache_dir.join("xmrig").join(&latest_release.version);
if force_download {
println!("Cleaning up xmrig dir");
let _ = fs::remove_dir_all(&xmrig_dir).await;
}
if !xmrig_dir.exists() {
println!("Latest version of xmrig doesn't exist");
println!("latest version is {}", latest_release.version);
let in_progress_dir = cache_dir
.join("com.tari.universe")
.join("xmrig")
.join("in_progress");
let in_progress_dir = cache_dir.join("xmrig").join("in_progress");
if in_progress_dir.exists() {
println!("Trying to delete dir {:?}", in_progress_dir);
match fs::remove_dir(&in_progress_dir).await {
Expand All @@ -156,10 +150,10 @@ impl XmrigAdapter {
}
}

let os_string = get_os_string();
info!(target: LOG_TARGET, "Downloading xmrig for {}", &os_string);
let id = get_os_string_id();
info!(target: LOG_TARGET, "Downloading xmrig for {}", &id);
let platform = latest_release
.get_asset(&os_string)
.get_asset(&id)
.ok_or(anyhow::anyhow!("Failed to get platform asset"))?;
println!("Downloading file");
println!("Downloading file from {}", &platform.url);
Expand Down Expand Up @@ -209,10 +203,10 @@ impl Drop for XmrigInstance {
}

#[allow(unreachable_code)]
fn get_os_string() -> String {
fn get_os_string_id() -> String {
#[cfg(target_os = "windows")]
{
return "windows-x64".to_string();
return "msvc-win64".to_string();
}

#[cfg(target_os = "macos")]
Expand All @@ -232,12 +226,12 @@ fn get_os_string() -> String {

#[cfg(target_os = "linux")]
{
return "linux-x64".to_string();
return "linux-static-x64".to_string();
}

#[cfg(target_os = "freebsd")]
{
return "freebsd-x64".to_string();
return "freebsd-static-x64".to_string();
}

panic!("Unsupported OS");
Expand Down
11 changes: 9 additions & 2 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import useAppStateStore from './store/appStateStore.ts';
function App() {
const background = useUIStore((s) => s.background);
const view = useUIStore((s) => s.view);
const setView = useUIStore((s) => s.setView);
const setBackground = useUIStore((s) => s.setBackground);
const startupInitiated = useRef(false);
const setSetupDetails = useAppStateStore((s) => s.setSetupDetails);
const settingUpFinished = useAppStateStore((s) => s.settingUpFinished);
Expand All @@ -33,6 +35,8 @@ function App() {
setSetupDetails(payload.title, payload.progress);
if (payload.progress >= 1.0) {
settingUpFinished();
setView("mining");
setBackground("mining");
}
break;
default:
Expand All @@ -46,10 +50,13 @@ function App() {
);
if (!startupInitiated.current) {
startupInitiated.current = true;
invoke('setup_application').then((r) => {
console.log(r);
setView("setup");
setBackground("onboarding");
invoke('setup_application').catch((e) => {
console.error('Failed to setup application:', e);

});

}

return () => {
Expand Down

0 comments on commit e4c709f

Please sign in to comment.