Thanks to all for the feedback so far. I would like to answer a couple of questions mostly from this last post because it raises very good points that might also help where I'm going with this.
Why do you really want to do this? Is it really to impress your management and get "extra points?"
Actually, that was secondary :-) My primary goal is to find some ways to practice my skills with Perl by doing real world problems. Besides, the company is in kind of a lull right now and our group is in betwen projects. We just also had a big layoff, everybody is feeling down and just kind of sitting around. I'd like to find myself something interesting to do.
You say you saw a need but whose need is it?
The tools will be used by Tech Support and Field Engineers. And the tools are written mostly either by developers or SQA. They started as internal tools for one person's own use. So most, if not all of these were written not meant for public consumption aside from the person developing the tools and maybe one or two other people in the group. The usualy thing that happens is word spreads around about such a tool, and it just get dumped in a central repository where everybody can gain access to it.
After you put the effort into this and your tool is created, is it going to be used, or most of the team already familiar the tools that exist?
As touched upon by the previous answer, no, the people this wrapper script will be meant for a totally different group, perhaps less technical than the original audience the tools being wrapped were meant for.
How are the tools used?
They are just currently command line tools run on a linux bash shell. The people using it, are mostly on Windows telneting to the linux environment, and are not very comfortable with command line tools. Most of the users use the command by 'rote' method. Somebody would give them the command and arguments once, and they will just kind type it in without really understanding what's going on. And they will just remember that as the only thing they have to type to do something.
If they are like most Unix tools, they can probably be used in chains of filters where the output of one script is used as the input to another. Will your wrapper support this?
No, most of these scripts are stand alone, whose output will never ever be used to feed other scripts.
How will your wrapper handle command line arguments with more than simple logic? (I.e. this switch makes sense only when used in conjunction with this other one or similar.)
This is actually one of the things I'm asking this group for help about :-), that is, how to handle command line args. I never even thought about what you just said here, which is good, this is why I asked here in the first place, right? :-) But I guess the answer to this one, I'm just going to make my wrapper script very dumb and I will not try to process any arguments at all. All I have to do is gather up all the arguments from the user, and invoke the script passing all the arguments without doing anything to it. I'll let the script handle the argument checking. If I get an error back from the script, then I'll pass it back to the user.
Could a better solution be writing some documentation?
I'd like to say 'Yes', but I think it will just be part of the solution. And I actually documented some of them, well at least all the Perl ones, by writing PODs, but nobody ever noticed them. or bother to look at them. I was thinking that one of the features of this wrapper will be to display the POD when the user selects a particular tool. I don't know what to do yet for those tools that are not Perl.
If I was your manager and I saw you take the initiative to write some documentation for our in-house tools, I'd be impressed. ;-) I'd be less impressed by a gui front-end to command line tools though.
I was thinking the wrapper would address both. It will present some documentation about the script if it is provided by the script, and at the same time provide some kind of UI to it, I don't know about GUI at this point, but at least some kind of UI
Also, another question above is how I would like to handle when a new script is added, do I want to change the wrapper code each time? The answer is no. The metadata I was talking about will suppose to take care of that.
Thanks again for the interaction so far. I think it's kind of helpful, in a way where at least it got me thinking about things I haven't though about yet.