
A Brush – egy parancssori felület, amely Rust nyelven készült, és ötvözi a POSIX és a Bash kompatibilitását a memória biztonsági garanciáival és teljesítménnyel. A projekt célja, hogy teljes értékű alternatívája legyen a hagyományos parancssori felületeknek, lehetővé téve a meglévő szkriptek futtatását és a .bashrc használatát szinte változtatás nélkül. Ez a verzió több hónap munkáját és több mint 200 egyesített pull-requestet tartalmaz, jelentősen elősegítve a felület Bash és POSIX-kompatibilis környezetekkel való helyettesítését.
A fejlesztési irányvonalak ebben a kiadásban:
- Bash kompatibilitás: added set -e, set -u, pipefail, failglob, ERR kezelő, koprocesszorok és sok más;
- megbízhatóság: javított hibakezelés - zárt csatornák, sérült kimenet, nem UTF-8 történet és mások;
- platformok: kibővített támogatás macOS-re (belépési shell-ként való működés), javított fájlkezelés Windows, FreeBSD, Android és 32 bites rendszerek alatt;
- interaktivitás: opcionális TOML-konfigurációk, preexec/precmd hookok hozzáadása, javított readline makrók támogatása és más.
A Bash-kompatibilitás kulcsfontosságú fejlesztései
A verzió legfontosabb fejlesztései közé tartozik a Bash lehetőségeinek jelentős bővítése. Hiba kezelés:
- set -e (errexit) – azonnali kilépés hiba esetén;
- set -u (nounset) – hiba egy nem deklarált változó elérésekor;
- pipefail – a cső kimeneti kódja az utolsó meghibásodott parancs által határozódik meg;
- failglob – a glob kifejezéshez nem tartozó találat esetén most hiba lép fel.
Traps és koprocesszorok:
- ERR kezelő – parancsok futtatása hiba esetén;
- kocoprocok (coproc) – kétirányú kommunikációval rendelkező háttérfolyamatok indítása.
Beépített parancsok:
- javították sok aritmetikai konstrukció kezelését, beleértve a magas alapú literálokat, a túlcsordulásokat és a hozzárendelési operátorokat;
- javítások és fejlesztések érintették a beépített parancsokat: caller, read, getopts, printf és mások.
Platformtámogatás kiterjesztése:
A v0.4.0 kiadás a shellt szélesebb spektrumú eszközökön teszi elérhetővé:
- macOS: javították a problémát, ami miatt a shell a belépéskor akadt. Most a brush használható belépési shell-ként;
- Windows: fejlesztések a fájlkezelésben, hozzáadva a /dev/null emulációt, amely jelentősen növeli a használhatóságot Windows alatt;
- A FreeBSD és Android: támogatott a build ezekhez a platformokhoz;
Interaktív lehetőségek és API
- Konfiguráció: hozzáadva a TOML-konfigfájl opcionális támogatása (~/.config/brush/config.toml) a brush-specifikus beállításokhoz;
- Testreszabás: implementálva a zsh preexec/precmd hook stílusok (kísérleti flag mögött), hasznos az egyedi promptok és időmérő eszközök létrehozásához;
- API fejlesztőknek: a Shell típusa most paraméterezhető kiterjesztésekkel (ShellExtensions), lehetővé téve a fejlesztők számára, hogy saját beépített parancsokat adjanak hozzá és módosítsák a változók viselkedését a projekt forks nélkül;
- Vegyes:
- hozzáadott AST és shell állapot sorosítási lehetőségek a serde-on keresztül;
- most a brush-parser és a brush-core funkciók elérhetők a serde képességekkel az AST és shell állapot sorosítására.
Forrás: linux.org.ru
