mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-28 06:58:12 +08:00
WIP
This commit is contained in:
Generated
+8
-4
@@ -2414,6 +2414,10 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "graphite-desktop-update"
|
name = "graphite-desktop-update"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
|
dependencies = [
|
||||||
|
"reqwest",
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "graphite-desktop-wrapper"
|
name = "graphite-desktop-wrapper"
|
||||||
@@ -5423,9 +5427,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "security-framework-sys"
|
name = "security-framework-sys"
|
||||||
version = "2.14.0"
|
version = "2.15.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32"
|
checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"core-foundation-sys",
|
"core-foundation-sys",
|
||||||
"libc",
|
"libc",
|
||||||
@@ -6330,9 +6334,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tower-http"
|
name = "tower-http"
|
||||||
version = "0.6.6"
|
version = "0.6.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
|
checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.9.3",
|
"bitflags 2.9.3",
|
||||||
"bytes",
|
"bytes",
|
||||||
|
|||||||
@@ -9,3 +9,5 @@ edition = "2024"
|
|||||||
rust-version = "1.87"
|
rust-version = "1.87"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
serde = { workspace = true }
|
||||||
|
reqwest = { workspace = true }
|
||||||
|
|||||||
+88
-23
@@ -1,37 +1,102 @@
|
|||||||
pub struct Info {
|
const UPDATE_CHECK_URL: &str = "https://localhost:8080/v1/update";
|
||||||
pub commit: Commit,
|
|
||||||
pub system: System,
|
async fn check_for_update(info: Info) -> Status {
|
||||||
pub package: Package,
|
let client = reqwest::Client::new();
|
||||||
pub version: Version,
|
let response = client.post(UPDATE_CHECK_URL).json(&info).send().await;
|
||||||
|
|
||||||
|
match response {
|
||||||
|
Ok(response) => {
|
||||||
|
if response.status().is_success() {
|
||||||
|
match response.json::<Status>().await {
|
||||||
|
Ok(result) => result,
|
||||||
|
Err(_) => Status::Unknown,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Status::Unknown
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(_) => Status::Unknown,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
|
pub struct Info {
|
||||||
|
pub commit: Commit,
|
||||||
|
pub version: Version,
|
||||||
|
pub system: System,
|
||||||
|
pub source: Option<Source>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
pub struct Commit {
|
pub struct Commit {
|
||||||
pub hash: String,
|
pub hash: String,
|
||||||
pub time: u64,
|
pub time: u64,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct System {
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
pub os: Os,
|
|
||||||
pub arch: Arch,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub enum Os {
|
|
||||||
Linux,
|
|
||||||
Mac,
|
|
||||||
Windows,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub enum Arch {
|
|
||||||
X86_64,
|
|
||||||
Aarch64,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct Version {
|
pub struct Version {
|
||||||
pub major: u64,
|
pub major: u64,
|
||||||
pub minor: u64,
|
pub minor: u64,
|
||||||
pub patch: u64,
|
pub patch: u64,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Package {
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
pub url: String,
|
pub struct System {
|
||||||
|
pub os: Os,
|
||||||
|
pub arch: Arch,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
|
pub enum Os {
|
||||||
|
Linux,
|
||||||
|
Mac,
|
||||||
|
Windows,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
|
pub enum Arch {
|
||||||
|
X86_64,
|
||||||
|
Aarch64,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
|
pub enum Source {
|
||||||
|
Flathub,
|
||||||
|
Nixpkgs,
|
||||||
|
Steam,
|
||||||
|
AppleAppStore,
|
||||||
|
WindowsStore,
|
||||||
|
Other(String),
|
||||||
|
}
|
||||||
|
|
||||||
|
struct UpdateCheckRsponse {
|
||||||
|
status: Status,
|
||||||
|
messages: Vec<Message>,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Message {
|
||||||
|
title: String,
|
||||||
|
body: String,
|
||||||
|
action: Action,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub enum Action {
|
||||||
|
OpenUrl(String),
|
||||||
|
PerformAutoUpdate,
|
||||||
|
None,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
|
pub enum Status {
|
||||||
|
Available(Method),
|
||||||
|
Outdated,
|
||||||
|
Unknown,
|
||||||
|
Latest,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
|
pub enum Method {
|
||||||
|
Manual,
|
||||||
|
Auto { url: String },
|
||||||
|
PackageManager,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user