Štětec v0.4.0

Štětec v0.4.0

Brush je příkazový shell napsaný v Rustu, který kombinuje kompatibilitu s POSIX a Bash se zárukami bezpečnosti paměti a výkonu. Projekt si klade za cíl stát se plnohodnotnou alternativou k tradičním shellům, což umožní spouštění stávajících skriptů a používání souboru .bashrc prakticky beze změny. Tato verze představuje několik měsíců práce a více než 200 sloučených pull requestů, což výrazně posouvá shell směrem k plnohodnotné náhradě pro Bash a prostředí kompatibilní s POSIX.

Klíčové oblasti rozvoje v tomto čísle:

  • Kompatibilita s Bashem: přidány příkazy set -e, set -u, pipefail, failglob, obslužná rutina ERR, koprocesy a mnoho dalšího;
  • spolehlivost: vylepšené zpracování výjimečných případů – uzavřené kanály, nefunkční výstup, historie mimo UTF8 a další;
  • Platformy: Rozšířená podpora macOS (funguje jako vstupní shell), vylepšená práce na Windows, FreeBSD, Android a 32bitové systémy;
  • Interaktivita: přidány volitelné konfigurace TOML, hooky preexec/precmd, vylepšená podpora maker readline a další.

Vylepšení kompatibility s Key Bash

Nejdůležitějšími vylepšeními v této verzi bylo významné rozšíření podpory funkcí Bash. Správa chyb:

  • set -e (errexit) – okamžitý návrat při chybě;
  • set -u (podstatné jméno) – chyba při přístupu k nedeklarované proměnné;
  • pipefail – návratový kód pipeline je určen posledním neúspěšným příkazem;
  • failglob – Pokud se nenajde shoda s výrazem typu glob, nyní dojde k chybě.

Obslužné rutiny (trapy) a koprocesy:

  • Obsluha ERR - umožňuje spustit příkazy, když dojde k chybě;
  • koprocesy (coproc) - spouštění procesů na pozadí s obousměrnou komunikací.

Vestavěné příkazy:

  • Vylepšené zpracování mnoha aritmetických konstrukcí, včetně literálů s vysokým radixem, operátorů přetečení a přiřazovacích operátorů;
  • Opravy a vylepšení ovlivnily vestavěné příkazy: caller, read, getopts, printf a další.

Rozšíření podpory platforem:

Verze 0.4.0 zpřístupňuje shell na širší škále zařízení:

  • macOS: Opraven problém, kdy se shell při přihlašování zamrzával. Brush lze nyní použít jako přihlašovací shell;
  • WindowsVylepšení v práci s cestami, přidána emulace /dev/null, která výrazně zlepšuje použitelnost na Windows;
  • FreeBSD a Android: assembly pro tyto platformy je podporován;

Interaktivní funkce a API

  • KonfiguracePřidána podpora pro volitelný konfigurační soubor TOML (~/.config/brush/config.toml) pro nastavení specifická pro štětce;
  • PřizpůsobeníImplementovány hooky preexec/precmd ve stylu zsh (za experimentálním příznakem), užitečné pro vytváření vlastních výzev a nástrojů pro časování;
  • API pro vývojářeTyp Shell je nyní parametrizován rozšířeními (ShellExtensions), což vývojářům umožňuje přidávat vlastní vestavěné příkazy a měnit chování proměnných bez nutnosti rozvětvování projektu;
  • Různé:
    • Vylepšená podpora maker readline pro kompatibilitu s starship, atuin и fzf (github.com);
    • Přidány možnosti serializace AST a stavu shellu přes serde;
    • Funkce serde jsou nyní k dispozici v brush-parser a brush-core, které umožňují serializaci AST a stavu shellu.

Zdroj: linux.org.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster