On Mon, 7 May 2001, Jason Cunliffe wrote:
Jerome Alet" <alet@unice.fr> wrote:
If you're interested I've put a 0.3 online at:
This gets better all the time :-)
I have learned so much already, just looking through your source. It makes a great Zope tutorial in unexpected ways. Thanks.
This was also unexpected !
new commands: mkver, enter, leave, save, discard (versions) and the powerful but not used at its full power until variables are checked in: the "call" command !
there are also many bug fixes and the possibility to call the method with a zshellscript argument containing the list of commands to execute.
Can you give an example to do this please.
just do something like: <UNTESTED> <dtml-let result="zshell(_, zshellscript=["mkdir foo/bar"])"> <dtml-if "result == 0"> All worked fine <dtml-else> An error occured </dtml-if> </dtml-let> </UNTESTED> When called like that, it returns only the status code of the result: 0 = no error other = errors occured
1. MORE SHELL-LIKE BEHAVIOR
I keep hitting return and expecting my code to happen. It's not just laziness. The RUN button breaks the familiar shell command line paradigm. I realise it is nice to have multiple lines, but I find it faster to type and keep typing, than have to jump back and forth to the mouse.
One solution: SHIFT + ENTER => multiline entry ENTER => execute
Don't know how to do it, but this will probably need some javascript at which my value is 0 or less. If someone can help... NB: I want it to also work fine with Lynx.
----------------------------- 2. ZSHELL DTML UI SUGGESTIONS At the top of the page include all the zshell commands as hyperlinks links. Clicking on a command displays the docstring for the command above/below the text area and also enters the comand and dummy argument string directly into the Zshell shell where one may edit.
Again will probably at least partially need some javascript.
DTML + ZSHELL
Add a new tag so that Zshell commands can be run from DTML
Interestingly we want the same things :-) Not in my priority list, but definitively needed.
3. RESULTS Normal shell would return the results in the shell itself. I can see why in Zope this may not be often such a good idea. For example, making ls return a hypelinked table as you do is terrific idea.
The new version will support at least partially pseudo standard I/O streams stdin, stdout, and stderr which contents will be retrievable. This is a necessity for piping anyway. The HTML result will be another retrievable I/O stream. I think in the future zshell will return an instance of the class I define. The code is in heavy lifting right now, so don't expect a new version quick.
4. cd Seems a little inconsistent at the moment partly becuase it does not resolve "/" I have a zshell in zope root "/"
it's better with every version, but still not perfect. My toObject() method sucks great.
Perhaps you disagree..
not at all, but I was unable to write something decent.
Also for any CD command which is not valid, I suggest including a 'pwd' by default in the first line of the Results error message:
easy.
mkdir a/b/c/d -(p)ublic -(u)ser
possibly: :set public+user attributes for all new folders :set public+user attributes for just the last folder
Perhaps control it using a simple binary flag style. For example:
mkdir a/b/c/d -p0110 -u1110
Set 'public' b and c only Add 'user' folders in a,b,c only
not very user friendly IMHO, but at least solves the problem in an elegant way. -p and -u will have to be the first parameters since mkdir accepts multiple arguments.
6. cp
Of course 'cp' should work across folders and also be able to paste in one line.
agreed
9. wildcards Some useful, obvious ones for ZopeShell wishlist whcih might be much easier I can think of:
* *meta *date
no because *'s semantic MUST mean: any object id which ends in meta, date, etc... if we want to be consistent with the shell normal behavior
8. wget
Very useful for all kinds of things Change the 'fname' code so that the default behavior is to save names under their original source names. If that id is already taken, then take action and rename.
ok, but . in ids is not a good idea in Zope/Python.
Include an flag for Zope wget to do auto renaming [like it is now]. syntax could perhaps be:
wget args rename_meta # rename to append meta tag wget args rename_sub # rename to append subtype wget args rename_xyz # rename to apend _xyz # where _xyz are any continuous suffix string, "_bak" etc.
I don't like it.
7. adduser
This is going to be very cool but, meanwhile I am not not clear what to 'do' with adduser.
add many user in one line.
At least until there is a Zshell mechanism to get and set permissions, and
will come soon. bye, and thanks for your support. PS: perhaps I should set up a mailing list somewhere to not waste Zope's one bandwidth, what do you think ? Jerome Alet