diff options
| author | Oskar <oskar@mullvad.net> | 2025-10-27 08:04:11 +0100 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2025-10-27 16:51:45 +0100 |
| commit | a3aa47a36651c7eed6db46d2d74de8579369448b (patch) | |
| tree | a4b48b5115ce510cb81082fa33bbfaf7f4181b00 | |
| parent | 759b2d29716b59743f611a4c81498a16ec3c3a13 (diff) | |
| download | mullvadvpn-a3aa47a36651c7eed6db46d2d74de8579369448b.tar.xz mullvadvpn-a3aa47a36651c7eed6db46d2d74de8579369448b.zip | |
Make mullvad-release use state dir in .local
| -rw-r--r-- | mullvad-update/mullvad-release/src/main.rs | 11 | ||||
| -rw-r--r-- | mullvad-update/mullvad-release/src/platform.rs | 15 |
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"))], |
