summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2025-10-27 08:04:11 +0100
committerOskar <oskar@mullvad.net>2025-10-27 16:51:45 +0100
commita3aa47a36651c7eed6db46d2d74de8579369448b (patch)
treea4b48b5115ce510cb81082fa33bbfaf7f4181b00
parent759b2d29716b59743f611a4c81498a16ec3c3a13 (diff)
downloadmullvadvpn-a3aa47a36651c7eed6db46d2d74de8579369448b.tar.xz
mullvadvpn-a3aa47a36651c7eed6db46d2d74de8579369448b.zip
Make mullvad-release use state dir in .local
-rw-r--r--mullvad-update/mullvad-release/src/main.rs11
-rw-r--r--mullvad-update/mullvad-release/src/platform.rs15
2 files changed, 14 insertions, 12 deletions
diff --git a/mullvad-update/mullvad-release/src/main.rs b/mullvad-update/mullvad-release/src/main.rs
index 5089dbeb09..e9692d2577 100644
--- a/mullvad-update/mullvad-release/src/main.rs
+++ b/mullvad-update/mullvad-release/src/main.rs
@@ -5,7 +5,7 @@
use anyhow::{Context, bail};
use clap::Parser;
-use std::{path::Path, str::FromStr};
+use std::{path::PathBuf, str::FromStr};
use tokio::fs;
use config::Config;
@@ -172,7 +172,8 @@ async fn main() -> anyhow::Result<()> {
if latest_file {
match HttpVersionInfoProvider::get_latest_versions_file().await {
Ok(json_str) => {
- let path = Path::new(LATEST_FILENAME);
+ let path_buf = get_data_dir().join(LATEST_FILENAME);
+ let path = path_buf.as_path();
if !assume_yes && path.exists() {
let msg = format!(
@@ -336,3 +337,9 @@ fn all_platforms_if_empty(platforms: Vec<Platform>) -> Vec<Platform> {
}
platforms
}
+
+pub fn get_data_dir() -> PathBuf {
+ std::env::home_dir()
+ .expect("No home dir found")
+ .join(".local/share/mullvad-release")
+}
diff --git a/mullvad-update/mullvad-release/src/platform.rs b/mullvad-update/mullvad-release/src/platform.rs
index d7114e484a..caa81c7b81 100644
--- a/mullvad-update/mullvad-release/src/platform.rs
+++ b/mullvad-update/mullvad-release/src/platform.rs
@@ -8,17 +8,12 @@ use mullvad_update::{
MIN_VERIFY_METADATA_VERSION, Rollout, VersionArchitecture, VersionInfo, VersionParameters,
},
};
-use std::{
- cmp::Ordering,
- fmt,
- path::{Path, PathBuf},
- str::FromStr,
-};
+use std::{cmp::Ordering, fmt, path::PathBuf, str::FromStr};
use strum::IntoEnumIterator;
use tokio::{fs, io};
use crate::{
- artifacts,
+ artifacts, get_data_dir,
io_util::{create_dir_and_write, wait_for_confirm},
};
@@ -76,17 +71,17 @@ impl Platform {
/// Path to WIP file in `work/` for this platform
pub fn work_path(&self) -> PathBuf {
- Path::new("work").join(self.local_filename())
+ get_data_dir().join("work").join(self.local_filename())
}
/// Path to signed file in `signed/` for this platform
pub fn signed_path(&self) -> PathBuf {
- Path::new("signed").join(self.local_filename())
+ get_data_dir().join("signed").join(self.local_filename())
}
/// Expected artifacts in `artifacts/` directory
pub fn artifact_filenames(&self, version: &mullvad_version::Version) -> Artifacts {
- let artifacts_dir = Path::new("artifacts");
+ let artifacts_dir = get_data_dir().join("artifacts");
match self {
Platform::Windows => Artifacts {
x86_artifacts: vec![artifacts_dir.join(format!("MullvadVPN-{version}_x64.exe"))],