Eigenständige Linux-Anwendung bereitstellen
Some checks failed
Tests / test (push) Has been cancelled

This commit is contained in:
2026-10-15 10:20:13 +02:00
parent 31ac17dd41
commit 692bbbb815
4 changed files with 143 additions and 1 deletions

View File

@@ -121,6 +121,18 @@ fn setup(data: &Path) -> Result<(), String> {
fs::remove_file(data.join(".write-test")).map_err(|e| e.to_string())?;
workflow::init_index(data)
}
fn default_data_dir() -> PathBuf {
std::env::var_os("XDG_DATA_HOME")
.filter(|value| !value.is_empty())
.map(PathBuf::from)
.or_else(|| {
std::env::var_os("HOME")
.filter(|value| !value.is_empty())
.map(|home| PathBuf::from(home).join(".local/share"))
})
.unwrap_or_else(|| PathBuf::from("."))
.join("csr-intake")
}
fn label(key: &str, en: bool) -> String {
match key {
"display" => tr(en, "Bildschirm", "Display"),
@@ -1845,12 +1857,20 @@ fn main() -> eframe::Result<()> {
println!("CS-R Intake {} · {BUILD}", env!("CARGO_PKG_VERSION"));
return Ok(());
}
if args.iter().any(|a| a == "--help" || a == "-h") {
println!(
"CS-R Intake {}\nUsage: intake-gui [--data DIRECTORY] [--version]\nDefault data directory: {}",
env!("CARGO_PKG_VERSION"),
default_data_dir().display()
);
return Ok(());
}
let data = args
.iter()
.position(|a| a == "--data")
.and_then(|i| args.get(i + 1))
.map(PathBuf::from)
.unwrap_or_else(|| PathBuf::from("/mnt/intake-data"));
.unwrap_or_else(default_data_dir);
eframe::run_native(
"CS-R Intake",
eframe::NativeOptions {