It allows to create Rich Textual Applications. These kind of apps will display in Browser (bonsole) window, if it;s available. If not, it will translates markup code to text with terminal escaping sequence. Currently, textual/without graphics mode isn’t supported.
Application run by Bonsole must call some function from client library. This function checks if there’s exist some variables in environment, point to fd to acquire cookie. This function also prepare client lib for processing app output, listing xsl files.
Application generates XML output and when decided to swap Bonsole’s window content, XML output is processed by xsl files in order like in other places on Linux systems (xsl files beginning with natural number). Yes, we translate output of app by first xsl file, output of this file by another one and so on…
I also plan add new pipe kind. This kind of pipes uses normal fd, but it can have name known by application and data generated by application to this pipe will be filtered by some files, I think xsl could be one of option, but xsl is related to xml, so we must have each tag enclosed. This implies app must generate whole output.
Currently we have only one example app - app similar to ls.
To use Bonsole, you must give an argument with path to xsl files.
Default xls is placed in project_dir/data/xslt
You probably misunderstand me.
It don’t generate XSL, but transform XML into XML/HTML/terminal output. It uses XSL.
Of course, in future I would add support for new kind of pipes - pipes with data translated by XSL.
I added first useful example program - user_edit. It is addressed to edit /etc/passwd . I known that it’s not suitable to this forum, because we have Yast/Yast2, but for other distros it might be useful.
Well, for simply editing /etc/passwd all distributions (incuding openSUSE) have vi/vim, like for editing any other text file.
For managing users (which includes editing /etc/passwd in a consistent way with other configuration about users) there is useradd/usermod/userdel. And associated tools for groups and passwords. All cross Unix/Linux (and thus distribution agnostic) anf known by any serious system manager.
But I probably miss the essential part of what you are doing. My fault :shame: