[Zope] [ANN] zshell: The Zope Shell

Jerome Alet alet@unice.fr
Thu, 3 May 2001 12:05:44 +0200 (MET DST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--889292347-2026565306-988884344=:31564
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi there,

I'm pleased to announce you the Zope Shell version 0.001.

The Zope shell is a GPLed Python Script which makes some of the most
commonly used unix shell commands available from within Zope, to manage
the ZODB contents. You'll find this 155 lines script attached to this
message. 

As for the 0.001 version which is attached to this message, the following
commands are recognized: cd, cp, mv, rm, ls

there are some restrictions however, and it doesn't seem to work with
absolute paths, read the source for details and the future commands.

zshell accepts an unlimited number of commands to launch in a single Zope
transaction, so feel free to combine these five commands to do some very
complicated stuff. Despite its current limitations it works fine here on
Zope 2.3.2+Hotfix0501.

Please feel free to send me any comment about this software. 

Such similar functionnality included in Zope's core would make me VERY
happy. 

hoping this helps.

Jerome Alet - alet@unice.fr

--889292347-2026565306-988884344=:31564
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="zshell.py"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.1010503120543.31564B@cortex.unice.fr>
Content-Description: 

IyMgU2NyaXB0IChQeXRob24pICJ6c2hlbGwiDQojI2JpbmQgY29udGFpbmVy
PWNvbnRhaW5lcg0KIyNiaW5kIGNvbnRleHQ9Y29udGV4dA0KIyNiaW5kIG5h
bWVzcGFjZT0NCiMjYmluZCBzY3JpcHQ9c2NyaXB0DQojI2JpbmQgc3VicGF0
aD10cmF2ZXJzZV9zdWJwYXRoDQojI3BhcmFtZXRlcnM9DQojI3RpdGxlPVRo
ZSBab3BlIFNoZWxsDQojIw0KIyB6c2hlbGwgLSAoYykgMjAwMSBKZXJvbWUg
QWxldA0KIw0KIyBZb3UncmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgdGhp
cyBzb2Z0d2FyZSB1bmRlciB0aGUNCiMgdGVybXMgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyBMaWNlbmNlIHZlcnNpb24gMi4wDQojIG9yLCBhdCB5b3Vy
IG9wdGlvbiwgYW55IGhpZ2hlciB2ZXJzaW9uLg0KIw0KIyBZb3UgY2FuIHJl
YWQgdGhlIGNvbXBsZXRlIEdOVSBHUEwgaW4gdGhlIGZpbGUgQ09QWUlORw0K
IyB3aGljaCBzaG91bGQgY29tZSBhbG9uZyB3aXRoIHRoaXMgc29mdHdhcmUs
IG9yIHZpc2l0DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24ncyBX
RUIgc2l0ZSBodHRwOi8vd3d3LmZzZi5vcmcNCiMNCiMgYXV0aG9yOiBKZXJv
bWUgQWxldCAtIDxhbGV0QHVuaWNlLmZyPg0KIw0KIw0KIyBUaGlzIGlzIHRo
ZSBab3BlIHNoZWxsLCBhbiBhdHRlbXB0IGF0IG1ha2luZyB0aGUgbW9zdCBj
b21tb24NCiMgVW5peCBzaGVsbCBjb21tYW5kcyBhdmFpbGFibGUgZnJvbSB3
aXRoaW4gWm9wZS4NCiMNCiMgQXMgb2YgTWF5IDNyZCAyMDAxLCB2ZXJzaW9u
IDAuMDAxLCB0aGUgZm9sbG93aW5nIGNvbW1hbmRzDQojIGFyZSByZWNvZ25p
emVkOg0KIw0KIwljZCwgcm0sIG12LCBjcCwgbHMNCiMNCiMgKiBjZCBhY2Nl
cHRzIGEgc2luZ2xlIHBhdGggYXMgYW4gYXJndW1lbnQNCiMgKiBybSBhY2Nl
cHRzIG1hbnkgcGF0aCBhcmd1bWVudHMNCiMgKiBtdiBhbmQgY3AgbGFzdCBh
cmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24gZm9sZGVyLCBldmVyeSBwcmV2
aW91cw0KIyAgIGFyZ3VtZW50IGlzIGFuIG9iamVjdCBpZCBpbiB0aGUgY3Vy
cmVudCBmb2xkZXINCiMgKiBscyBhY2NlcHRzIG1hbnkgbWV0YSB0eXBlcyBh
cyBpdHMgYXJndW1lbnRzDQojDQojIFRoZSBmdXR1cmU6DQojDQojIGluIHRo
ZSBmdXR1cmUgSSdkIGJlIGludGVyZXN0ZWQgaW4gYWRkaW5nIG1vcmUgZnVu
Y3Rpb25uYWxpdGllcw0KIyBhcyB3ZWxsIGFzIG1ha2luZyBpdCBhIGNvbXBs
ZXRlIFpvcGUgcHJvZHVjdCwgc3BsaXR0aW5nIGl0DQojIGluIG9uZSBtZXRo
b2QgcGVyIGNvbW1hbmQsIGFuZCBtYWtpbmcgdGhlIGFjY2VwdGVkIHN5bnRh
eCBtdWNoIG1vcmUNCiMgbWF0Y2ggVW5peCBzaGVsbCdzIG9uZS4NCiMgYWRk
aW5nIHN1cHBvcnQgZm9yIGEgZmluZCBjb21tYW5kIGlzIGFsc28gaGlnaCBv
biBteSBwcmlvcml0eSBsaXN0DQojDQojIEZlZWwgZnJlZSB0byBzZW5kIG1l
IGFueSBmZWVkYmFjayBhYm91dCB0aGlzIHNvZnR3YXJlIGF0OiBhbGV0QHVu
aWNlLmZyDQojDQoNCmltcG9ydCBzdHJpbmcNCg0KZGVmIHRvT2JqZWN0KGN1
cmRpciwgcGF0aCkgOg0KCWltcG9ydCBzdHJpbmcNCglwYXRoID0gc3RyaW5n
LnN0cmlwKHBhdGgpDQoJaWYgcGF0aFswXSA9PSAnLycgOg0KCQlwYXRoID0g
cGF0aFsxOl0NCgkJd2hpbGUgaGFzYXR0cihjdXJkaXIsICdhcV9wYXJlbnQn
KSBhbmQgKGN1cmRpci5hcV9wYXJlbnQgaXMgbm90IE5vbmUpOg0KCQkJY3Vy
ZGlyID0gY3VyZGlyLmFxX3BhcmVudA0KDQoJY29tcG9uZW50cyA9IGZpbHRl
cihOb25lLCBzdHJpbmcuc3BsaXQocGF0aCwgJy8nKSkNCglmb3IgY29tcG9u
ZW50IGluIGNvbXBvbmVudHMgOg0KCQlpZiBjb21wb25lbnQgPT0gJy4nIDoN
CgkJCWNvbnRpbnVlDQoJCWVsaWYgY29tcG9uZW50ID09ICcuLicgOg0KCQkJ
aWYgaGFzYXR0cihjdXJkaXIsICdhcV9wYXJlbnQnKSBhbmQgKGN1cmRpci5h
cV9wYXJlbnQgaXMgbm90IE5vbmUpOg0KCQkJCWN1cmRpciA9IGN1cmRpci5h
cV9wYXJlbnQNCgkJZWxpZiBoYXNhdHRyKGN1cmRpciwgY29tcG9uZW50KSA6
DQoJCQljdXJkaXIgPSBjdXJkaXJbY29tcG9uZW50XQ0KCQllbHNlIDoNCgkJ
CXJldHVybiBOb25lCSMgRXJyb3INCglyZXR1cm4gY3VyZGlyDQoNCnByaW50
IGNvbnRleHQuc3RhbmRhcmRfaHRtbF9oZWFkZXIuZG9jdW1lbnRfc3JjKCkN
Cg0KaWYgY29udGV4dC5SRVFVRVNULmhhc19rZXkoImNvbW1hbmRzIikgOg0K
CWNvbW1hbmRzID0gZmlsdGVyKE5vbmUsIGNvbnRleHQuUkVRVUVTVFsiY29t
bWFuZHMiXSkNCmVsc2UgOg0KCWNvbW1hbmRzID0gW10NCg0KcHJpbnQgJzxw
Pjxmb3JtIGFjdGlvbj0ienNoZWxsIiBtZXRob2Q9IlBPU1QiPicNCnByaW50
ICdFbnRlciB5b3VyIGNvbW1hbmRzIGJlbG93Ojxicj4nDQpwcmludCAnPHRl
eHRhcmVhIHJvd3M9IjEwIiBjb2xzPSI1MCIgd3JhcD0icGh5c2ljYWwiIG5h
bWU9ImNvbW1hbmRzOmxpbmVzIj4lczwvdGV4dGFyZWE+JyAlIHN0cmluZy5q
b2luKGNvbW1hbmRzLCAnXG4nKQ0KcHJpbnQgJzxicj48aW5wdXQgdHlwZT0i
c3VibWl0IiBuYW1lPSJydW4iIHZhbHVlPSJSdW4gISIgLz4nDQpwcmludCAn
PC9mb3JtPjwvcD4nDQoNCmlmIGNvbW1hbmRzIDoNCglwcmludCAnPGhyIG5v
c2hhZGU9Im5vc2hhZGUiIHdpZHRoPSIzMyUiIC8+PHA+UmVzdWx0czonDQoJ
Y3VycmVudCA9IGNvbnRleHQNCglmb3IgY29tbWFuZCBpbiBjb21tYW5kcyA6
DQoJCWNtZCA9IGNvbW1hbmRbOjJdDQoJCXByaW50ICc8YnI+PGI+JXM6PC9i
PiAnICUgY21kDQoJCWlmIGNtZCA9PSAnY2QnIDoNCgkJCXBhdGggPSBjb21t
YW5kWzM6XQ0KCQkJbmV3ZGlyID0gdG9PYmplY3QoY3VycmVudCwgcGF0aCkN
CgkJCWlmIChuZXdkaXIgaXMgbm90IE5vbmUpIGFuZCBoYXNhdHRyKG5ld2Rp
ciwgJ21ldGFfdHlwZScpIGFuZCAobmV3ZGlyLm1ldGFfdHlwZSA9PSAnRm9s
ZGVyJykgOg0KCQkJCWN1cnJlbnQgPSBuZXdkaXINCgkJCQlwcmludCAnTmV3
IGZvbGRlciBpcyA8ZW0+PGI+LyVzPC9iPjwvZW0+JyAlIG5ld2Rpci5hYnNv
bHV0ZV91cmwocmVsYXRpdmU9MSkNCgkJCWVsc2UgOg0KCQkJCXByaW50ICdJ
bmNvcnJlY3QgcGF0aCA8ZW0+PGI+JXM8L2I+PC9lbT4nICUgcGF0aA0KCQkJ
CXByaW50ICdbJXNdJyAlIHJlcHIobmV3ZGlyKQ0KCQllbGlmIChjbWQgPT0g
J212Jykgb3IgKGNtZCA9PSAnY3AnKSA6DQoJCQlhcmdzID0gc3RyaW5nLnNw
bGl0KGNvbW1hbmRbMzpdKQ0KCQkJaWYgbGVuKGFyZ3MpIDwgMiA6DQoJCQkJ
cHJpbnQgJ0luY29ycmVjdCBudW1iZXIgb2YgYXJndW1lbnRzJw0KCQkJZWxz
ZSA6DQoJCQkJZHN0ID0gYXJnc1stMV0NCgkJCQlzcmNzID0gYXJnc1s6LTFd
DQoJCQkJb2JqaWRzID0gW10NCgkJCQlmb3Igc3JjIGluIHNyY3MgOg0KCQkJ
CQlpZiAnLycgaW4gc3JjIDoNCgkJCQkJCXByaW50ICdQYXRocyBpbiBzb3Vy
Y2Ugb2JqZWN0cyBhcmUgbm90IGFsbG93ZWQgYXQgdGhpcyB0aW1lOiA8ZW0+
PGI+JXM8L2I+PC9lbT4nICUgc3JjDQoJCQkJCWVsc2UgOg0KCQkJCQkJb2Jq
aWRzLmFwcGVuZChzcmMpDQoJCQkJZHN0byA9IHRvT2JqZWN0KGN1cnJlbnQs
IGRzdCkNCgkJCQlpZiBkc3RvIGlzIE5vbmUgOg0KCQkJCQlwcmludCAnSW5j
b3JyZWN0IGRlc3RpbmF0aW9uIGFyZ3VtZW50IDxlbT48Yj4lczwvYj48L2Vt
PicgJSBkc3QNCgkJCQkJY29udGludWUNCgkJCQlpZiBkc3RvLm1ldGFfdHlw
ZSAhPSAnRm9sZGVyJyA6DQoJCQkJCXByaW50ICdEZXN0aW5hdGlvbiA8ZW0+
PGI+JXM8L2I+PC9lbT4gaXMgbm90IGEgZm9sZGVyaXNoIG9iamVjdCcgJSBk
c3QNCgkJCQkJY29udGludWUNCgkJCQlpZiBjbWQgPT0gJ2NwJyA6DQoJCQkJ
CWNsaXBib2FyZCA9IGN1cnJlbnQubWFuYWdlX2NvcHlPYmplY3RzKGlkcyA9
IG9iamlkcykNCgkJCQkJYWN0aW9uID0gJ2NvcGllZCcNCgkJCQllbHNlIDoN
CgkJCQkJY2xpcGJvYXJkID0gY3VycmVudC5tYW5hZ2VfY3V0T2JqZWN0cyhp
ZHMgPSBvYmppZHMpDQoJCQkJCWFjdGlvbiA9ICdtb3ZlZCcNCgkJCQlkc3Rv
Lm1hbmFnZV9wYXN0ZU9iamVjdHMoY2JfY29weV9kYXRhID0gY2xpcGJvYXJk
KQ0KCQkJCWZvciBvaWQgaW4gb2JqaWRzIDoNCgkJCQkJcHJpbnQgJzxicj4l
cyAlcycgJSAob2lkLCBhY3Rpb24pDQoJCWVsaWYgY21kID09ICdybScgOg0K
CQkJb2JqcGF0aHMgPSBmaWx0ZXIoTm9uZSwgc3RyaW5nLnNwbGl0KHN0cmlu
Zy5zdHJpcChjb21tYW5kWzM6XSkpKQ0KCQkJZm9yIG9ianBhdGggaW4gb2Jq
cGF0aHMgOg0KCQkJCW9iamVjdCA9IHRvT2JqZWN0KGN1cnJlbnQsIG9ianBh
dGgpDQoJCQkJaWYgb2JqZWN0IGlzIE5vbmUgOg0KCQkJCQlwcmludCAnSW5j
b3JyZWN0IHBhdGggPGVtPjxiPiVzPC9iPjwvZW0+JyAlIG9ianBhdGgNCgkJ
CQllbHNlIDoNCgkJCQkJaWYgaGFzYXR0cihvYmplY3QsICdhcV9wYXJlbnQn
KSA6DQoJCQkJCQlvYmplY3QuYXFfcGFyZW50Lm1hbmFnZV9kZWxPYmplY3Rz
KGlkcyA9IFtvYmplY3QuZ2V0SWQoKV0pDQoJCQkJCQlwcmludCAiPGJyPi8l
cyByZW1vdmVkIiAlIG9iamVjdC5hYnNvbHV0ZV91cmwocmVsYXRpdmU9MSkN
CgkJZWxpZiBjbWQgPT0gJ2xzJyA6DQoJCQltZXRhdHlwZXMgPSBmaWx0ZXIo
Tm9uZSwgc3RyaW5nLnNwbGl0KHN0cmluZy5zdHJpcChjb21tYW5kWzM6XSkp
KQ0KCQkJaWYgbWV0YXR5cGVzIDoNCgkJCQlvYmplY3RzID0gY3VycmVudC5v
YmplY3RWYWx1ZXMobWV0YXR5cGVzKQ0KCQkJZWxzZSA6DQoJCQkJb2JqZWN0
cyA9IGN1cnJlbnQub2JqZWN0VmFsdWVzKCkNCgkJCWlmIG9iamVjdHMgOg0K
CQkJCXByaW50ICc8dGFibGUgYm9yZGVyPSIxIj48dHI+PHRoPklkPC90aD48
dGg+VGl0bGU8L3RoPjx0aD5NZXRhVHlwZTwvdGg+PC90cj4nDQoJCQkJZm9y
IG9iamVjdCBpbiBvYmplY3RzIDoNCgkJCQkJdGl0bGUgPSBvYmplY3QudGl0
bGUgb3IgJyZuYnNwOycNCgkJCQkJcHJpbnQgJzx0cj48dGQ+JXM8L3RkPjx0
ZD4lczwvdGQ+PHRkPiVzPC90ZD48L3RyPicgJSAob2JqZWN0LmdldElkKCks
IHRpdGxlLCBvYmplY3QubWV0YV90eXBlKQ0KCQkJCXByaW50ICc8L3RhYmxl
PicNCgkJZWxzZSA6DQoJCQlwcmludCAnVW5rbm93biBjb21tYW5kIDxlbT48
Yj4lczwvYj48L2VtPicgJSBjb21tYW5kDQoJcHJpbnQgJzwvcD4nDQoNCnBy
aW50IGNvbnRleHQuc3RhbmRhcmRfaHRtbF9mb290ZXIuZG9jdW1lbnRfc3Jj
KCkNCnJldHVybiBwcmludGVkDQo=
--889292347-2026565306-988884344=:31564--