
Brush ā tÄ ir komandrinda, kas rakstÄ«ta Rust valodÄ, apvienojot POSIX un Bash saderÄ«bu ar atmiÅas droŔības garantijÄm un veiktspÄju. Projekta mÄrÄ·is ir kļūt par pilnvÄrtÄ«gu alternatÄ«vu tradicionÄlajÄm komandrindÄm, ļaujot izpildÄ«t esoÅ”os skriptus un izmantot .bashrc praktiski bez izmaiÅÄm. Å Ä« versija apvieno vairÄkus mÄneÅ”us ilgu darbu un vairÄk nekÄ 200 apvienotus pull pieprasÄ«jumus, ievÄrojami virzot Äaulu uz pilnvÄrtÄ«gu Bash un POSIX saderÄ«gu vidÄ aizstÄÅ”anu.
GalvenÄs attÄ«stÄ«bas jomas Å”ajÄ laidienÄ:
- Bash saderÄ«ba: pievienoti set -e, set -u, pipefail, failglob, ERR apstrÄdÄtÄjs, lÄ«dzprocesi un daudz kas cits;
- UzticamÄ«ba: uzlabota izÅÄmumu apstrÄde ā slÄgtie kanÄli, bojÄti iznÄkumi, ne-UTF8 vÄsture un citi;
- Platformas: paplaÅ”inÄta macOS atbalsts (darbojas kÄ ieejas Äaula), uzlabota darbÄ«ba Windows, FreeBSD, Android un 32 bitu sistÄmÄs;
- InteraktivitÄte: pievienoti opciju TOML konfigurÄcijas faili, preexec/precmd hooks, uzlabota readline makro atbalsts un citi.
Galvenie uzlabojumi Bash saderÄ«bÄ
NepiecieÅ”amÄkÄs izmaiÅas Å”ajÄ laidienÄ ir ievÄrojami paplaÅ”inÄjuÅ”as Bash iespÄjÄm atbalsta. Kļūdu pÄrvaldÄ«ba:
- set -e (errexit) ā momentÄna izieÅ”ana kļūdas gadÄ«jumÄ;
- set -u (nounset) ā kļūda, piekļūstot neizsludinÄtai mainÄ«gajai;
- pipefail ā cauruļu atgriezeniskÄ koda nosaka pÄdÄjÄ izgÄzusies komanda;
- failglob ā ŔķietÄ«gas atbilstÄ«bas trÅ«kums glob-izteiksmÄ tagad izraisa kļūdu.
ApstrÄdÄtÄji (Traps) un lÄ«dzprocesi:
- ERR apstrÄdÄtÄjs ā ļauj izpildÄ«t komandas, kad rodas kļūda;
- lÄ«dzprocesi (coproc) ā fonu procesu palaiÅ”ana ar divvirzienu saziÅu.
IebÅ«vÄti komandas:
- uzlabota daudzu aritmÄtisko konstrukciju, tostarp augstas bÄzes literÄlu, pÄrsnieguma un pieŔķirÅ”anas operatoru apstrÄde;
- izlabojumi un uzlabojumi ietekmÄja iebÅ«vÄtas komandas: caller, read, getopts, printf un citas.
Platformu atbalsta paplaÅ”inÄÅ”ana:
Laidiens v0.4.0 padara Äaulu pieejamu plaÅ”ÄkÄ ierÄ«Äu klÄstÄ:
- macOS: novÄrsta problÄma, kas izraisÄ«ja Äaulas sasalÅ”anu, ieejot sistÄmÄ. Tagad brush var izmantot kÄ ieejas Äaulu;
- Windows: uzlabojumi ceļu apstrÄdÄ, pievienota /dev/null emulÄcija, kas ievÄrojami palielina lietojamÄ«bu Windows;
- FreeBSD un Android: tiek atbalstÄ«ta versija Ŕīm platformÄm;
InteraktÄ«vÄs iespÄjas un API
- KonfigurÄcija: pievienota atbalsta opciju TOML konfigurÄcijas failam (~/.config/brush/config.toml) brush specifiskajÄm iestatÄ«jumiem;
- PielÄgoÅ”ana: Ä«stenoti zsh stili preexec/precmd hooks (pÄc eksperimentÄlÄs atzÄ«mes), noderÄ«gi, lai izveidotu pielÄgotus aicinÄjumus un laika mÄrīŔanas rÄ«kus;
- IzstrÄdÄtÄju API: Shell tips tagad ir parametrizÄts ar paplaÅ”inÄjumiem (ShellExtensions), piedÄvÄjot izstrÄdÄtÄjiem iespÄju pievienot savas iebÅ«vÄtÄs komandas un mainÄ«t mainÄ«go uzvedÄ«bu bez projekta forkoÅ”anas;
- DažÄdi:
- pievienotas AST un shell stÄvokļa serializÄcijas iespÄjas caur serde;
- tagad brush-parser un brush-core ir pieejamas serde funkcijas AST un shell stÄvokļa serializÄÅ”anas iespÄjÄm.
Avots: linux.org.ru
