mirror of
https://github.com/Grasscutters/Cultivation.git
synced 2025-12-12 23:24:35 +01:00
Install CA certificate
This commit is contained in:
@@ -20,6 +20,7 @@ use registry::{Hive, Data, Security};
|
|||||||
|
|
||||||
use rustls_pemfile as pemfile;
|
use rustls_pemfile as pemfile;
|
||||||
use tauri::http::Uri;
|
use tauri::http::Uri;
|
||||||
|
use crate::system_helpers::run_command;
|
||||||
|
|
||||||
async fn shutdown_signal() {
|
async fn shutdown_signal() {
|
||||||
tokio::signal::ctrl_c().await
|
tokio::signal::ctrl_c().await
|
||||||
@@ -170,5 +171,20 @@ pub(crate) fn generate_ca_files() {
|
|||||||
let cert_crt = cert.serialize_pem().unwrap();
|
let cert_crt = cert.serialize_pem().unwrap();
|
||||||
|
|
||||||
// TODO: Save certificates.
|
// TODO: Save certificates.
|
||||||
// TODO: Install certificates.
|
|
||||||
|
// Install certificate into the system's Root CA store.
|
||||||
|
install_ca_files();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Attempts to install the certificate authority's certificate into the Root CA store.
|
||||||
|
*/
|
||||||
|
pub(crate) fn install_ca_files() {
|
||||||
|
if cfg!(target_os = "windows") {
|
||||||
|
run_command("certutil -addstore -f \"ROOT\" ca/certificate.crt".to_string());
|
||||||
|
} else {
|
||||||
|
run_command("sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca/certificate.crt".to_string());
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("Installed certificate.");
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
use std::thread;
|
use std::thread;
|
||||||
|
use std::process::Command;
|
||||||
use tauri;
|
use tauri;
|
||||||
use open;
|
use open;
|
||||||
|
|
||||||
@@ -7,12 +8,31 @@ use open;
|
|||||||
pub fn run_program(path: String) {
|
pub fn run_program(path: String) {
|
||||||
// Open the program from the specified path.
|
// Open the program from the specified path.
|
||||||
|
|
||||||
// Open in new thread to prevent blocking
|
// Open in new thread to prevent blocking.
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
open::that(&path).unwrap();
|
open::that(&path).unwrap();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tauri::command]
|
||||||
|
pub fn run_command(command: String) -> String {
|
||||||
|
// Run the specified command.
|
||||||
|
let output = if cfg!(target_os = "windows") {
|
||||||
|
Command::new("cmd")
|
||||||
|
.args(["/C", command])
|
||||||
|
.output()
|
||||||
|
.expect("failed to execute process")
|
||||||
|
} else {
|
||||||
|
Command::new("sh")
|
||||||
|
.arg("-c")
|
||||||
|
.arg(command)
|
||||||
|
.output()
|
||||||
|
.expect("failed to execute process")
|
||||||
|
};
|
||||||
|
|
||||||
|
output.stdout.to_string()
|
||||||
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn run_jar(path: String, execute_in: String, java_path: String) {
|
pub fn run_jar(path: String, execute_in: String, java_path: String) {
|
||||||
let command = if java_path.is_empty() {
|
let command = if java_path.is_empty() {
|
||||||
|
|||||||
Reference in New Issue
Block a user