build(desktop): цели make, README и устойчивость обёртки к правам на логи
- Makefile: `desktop-check`, `desktop-build` (с ключом подписи обновлений, без ключа — сборка без артефактов обновления) и `desktop-run`; кэши cargo и npm держатся в .cache/, как у остальных инструментов проекта. - desktop/README.md: сборка, запуск, аргументы командной строки, настройки, deep links и открытые пункты Фазы 6. - bundle.targets = all: бандлы по умолчанию для текущей ОС (macOS: .app/.dmg). - Логирование подключается в setup и больше не роняет приложение, если каталог логов недоступен на запись (песочница, домашний каталог только для чтения). - Разбор аргументов вынесен в Cli::from_args и покрыт тестами (--instance, --minimized, --settings, --autostart on|off). - cargo fmt по модулям обёртки.
This commit is contained in:
@@ -23,7 +23,11 @@ pub fn normalize(input: &str) -> Result<Url, String> {
|
||||
let url = Url::parse(&candidate).map_err(|error| format!("некорректный адрес: {error}"))?;
|
||||
match url.scheme() {
|
||||
"http" | "https" => {}
|
||||
other => return Err(format!("поддерживаются только http и https, а не «{other}»")),
|
||||
other => {
|
||||
return Err(format!(
|
||||
"поддерживаются только http и https, а не «{other}»"
|
||||
))
|
||||
}
|
||||
}
|
||||
if url.host_str().unwrap_or_default().is_empty() {
|
||||
return Err("в адресе нет имени хоста".to_string());
|
||||
|
||||
Reference in New Issue
Block a user