Hi Folks,

I am announcing libWrapper a simple and stupid idea on quick'n'dirty gui wrapper for command line tools. I'll explain the theory behind it, give some cool examples and tell the download url. Let's assume that a trivial command line tool is usually used by invoking it's executable file with parameters. What the library does is assemble this line for you, it does not execute the line, there's only one function, and this function will return a string with the line. You execute it on your own okay?

It's all based on custom properties. First important custom property is cShellCommand, this you set on the card serving as wrapper. It's the executable file to be launched, like in the psWrapper is cShellCommand = /bin/ps. Now, let's understand about the innerworkings here (it's silly...). Function will loop thru all controls in the card, each control should resolve/evaluate to a parameter. The loop is based on the index, so first controls will be checked first, they are accessed by name, so no duplicate naming allowed. Controls with cIgnore set to true are skipped.

Field controls: They will be skipped if there's no content in them. if they have a cParameter property, this parameter will be used, and a simple string replacing routine will swap %CONTENTS% placeholder with the actual field contents. Example the grep pipe wrapper in the ps Wrapper, it's a field, the last field, so it's the last to be checked, it's cParameter is [| grep "%CONTENTS%" ] without the brackets, this way it will be appended last, the field contents will be inserted in %CONTENTS% and we'll have a piping wrapper!!!! It's a ps wrapper that's able to pipe to grep without any code at all!!!!

Buttons: buttons should set their cParamTrue and cParamFalse to the desired parameters. Checkbox and Radio buttons are evaluate based on their hilites, true look for cParamTrue, false look for cParamFalse. Get the picture? for example there's a check box in the ps wrapper called "Show all users?" cParamTrue = -a cParamFalse does not exist for we need no option not to show everyone. If button style is menu, then it will look for cParameter prop, and append it to the command line, use your own code to set the correct parameter when the user clicks the menu, look into the /bin/defaults wrapper for an example.

Tips: always set the cIgnore of your "Run!" button...

LibWrapper is: A mainstack with only one function called wrapIt. You invoke it with two parameters: stack and card. It returns the assembled string. Ex: get wrapIt("psWrapper",1)
Two example substacks, one is a MacOS X Wrapper for the /bin/defaults utility! (beware not to write crap to your defaults!) and the other is a /bin/ps wrapper for unix-like systems.


This code is free! I collect postcard if anyone care! :D

You can fetch libwrapper.rev at http://public.soapdog.org or you can run it from http://www.soapdog.org/rev/libwrapper.rev

There are some strange things in the loop, some parameters are evaluated twice... it's a bug with my code, a silly one, i'll fix it soon, but you can use it anyway! usually commandline tools to not argue with duplicate equal parameters....

If anyone patch, improves or create any wrapper, please send them to me!!!

This email text is bigger than the code... he he he.... simple code, complex ideas!

Andre Alves Garzia: "Wrap the Developer!"


_______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to